/**
 * Home Assistant Node - Version 1
 * Discriminator: resource=state, operation=getAll
 */


interface Credentials {
  homeAssistantApi: CredentialReference;
}

/** Get many events */
export type HomeAssistantV1StateGetAllParams = {
  resource: 'state';
  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 50
 */
    limit?: number | Expression<number>;
};

export type HomeAssistantV1StateGetAllOutput = {
  attributes?: {
    auto_update?: boolean;
    device_trackers?: Array<string>;
    editable?: boolean;
    entity_picture?: string;
    friendly_name?: string;
    id?: string;
    in_progress?: boolean;
    installed_version?: string;
    latest_version?: string;
    latitude?: number;
    longitude?: number;
    release_summary?: null;
    release_url?: string;
    skipped_version?: null;
    source?: string;
    supported_features?: number;
    title?: string;
    user_id?: string;
  };
  context?: {
    id?: string;
    parent_id?: null;
    user_id?: null;
  };
  entity_id?: string;
  last_changed?: string;
  last_reported?: string;
  last_updated?: string;
  state?: string;
};

export type HomeAssistantV1StateGetAllNode = {
  type: 'n8n-nodes-base.homeAssistant';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<HomeAssistantV1StateGetAllParams>;
  output?: Items<HomeAssistantV1StateGetAllOutput>;
};