/**
 * Oura Node - Version 1
 * Discriminator: resource=summary, operation=getSleep
 */


interface Credentials {
  ouraApi: CredentialReference;
}

/** Get the user's sleep summary */
export type OuraV1SummaryGetSleepParams = {
  resource: 'summary';
  operation: 'getSleep';
/**
 * 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 5
 */
    limit?: number | Expression<number>;
/**
 * Filters
 * @default {}
 */
    filters?: {
    /** End date for the summary retrieval. If omitted, it defaults to the current day.
     */
    end?: string | Expression<string>;
    /** Start date for the summary retrieval. If omitted, it defaults to a week ago.
     */
    start?: string | Expression<string>;
  };
};

export type OuraV1SummaryGetSleepOutput = {
  contributors?: {
    deep_sleep?: number;
    efficiency?: number;
    latency?: number;
    rem_sleep?: number;
    restfulness?: number;
    timing?: number;
    total_sleep?: number;
  };
  day?: string;
  id?: string;
  score?: number;
  timestamp?: string;
};

export type OuraV1SummaryGetSleepNode = {
  type: 'n8n-nodes-base.oura';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<OuraV1SummaryGetSleepParams>;
  output?: Items<OuraV1SummaryGetSleepOutput>;
};