/**
 * Philips Hue Node - Version 1
 * Discriminator: resource=light, operation=getAll
 */


interface Credentials {
  philipsHueOAuth2Api: CredentialReference;
}

/** Retrieve many lights */
export type PhilipsHueV1LightGetAllParams = {
  resource: 'light';
  operation: 'getAll';
/**
 * Whether to return all results or only up to a given limit
 * @default false
 */
    returnAll?: boolean | Expression<boolean>;
/**
 * Max number of results to return
 * @displayOptions.show { returnAll: [false] }
 * @default 100
 */
    limit?: number | Expression<number>;
};

export type PhilipsHueV1LightGetAllOutput = {
  capabilities?: {
    certified?: boolean;
    control?: {
      colorgamut?: Array<Array<number>>;
      colorgamuttype?: string;
      ct?: {
        max?: number;
        min?: number;
      };
      maxlumen?: number;
      mindimlevel?: number;
    };
    streaming?: {
      proxy?: boolean;
      renderer?: boolean;
    };
  };
  config?: {
    archetype?: string;
    direction?: string;
    'function'?: string;
    startup?: {
      configured?: boolean;
      mode?: string;
    };
  };
  manufacturername?: string;
  modelid?: string;
  name?: string;
  productid?: string;
  productname?: string;
  state?: {
    alert?: string;
    bri?: number;
    colormode?: string;
    ct?: number;
    effect?: string;
    hue?: number;
    mode?: string;
    on?: boolean;
    reachable?: boolean;
    sat?: number;
    xy?: Array<number>;
  };
  swconfigid?: string;
  swupdate?: {
    state?: string;
  };
  swversion?: string;
  type?: string;
  uniqueid?: string;
};

export type PhilipsHueV1LightGetAllNode = {
  type: 'n8n-nodes-base.philipsHue';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<PhilipsHueV1LightGetAllParams>;
  output?: Items<PhilipsHueV1LightGetAllOutput>;
};