/**
 * Google Tasks Node - Version 1
 * Discriminator: resource=task, operation=getAll
 */


interface Credentials {
  googleTasksOAuth2Api: CredentialReference;
}

/** Retrieve many tasks from a tasklist */
export type GoogleTasksV1TaskGetAllParams = {
  resource: 'task';
  operation: 'getAll';
/**
 * Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;
 */
    task?: string | Expression<string>;
/**
 * 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 20
 */
    limit?: number | Expression<number>;
/**
 * Additional Fields
 * @default {}
 */
    additionalFields?: {
    /** Upper bound for a task completion date (as a RFC 3339 timestamp) to filter by
     */
    completedMax?: string | Expression<string>;
    /** Lower bound for a task completion date (as a RFC 3339 timestamp) to filter by
     */
    completedMin?: string | Expression<string>;
    /** Lower bound for a task due date (as a RFC 3339 timestamp) to filter by
     */
    dueMin?: string | Expression<string>;
    /** Upper bound for a task due date (as a RFC 3339 timestamp) to filter by
     */
    dueMax?: string | Expression<string>;
    /** Whether completed tasks are returned in the result. &lt;strong&gt;Show Hidden&lt;/strong&gt; must also be True to show tasks completed in first party clients such as the web UI or Google's mobile apps.
     * @default true
     */
    showCompleted?: boolean | Expression<boolean>;
    /** Whether deleted tasks are returned in the result
     * @default false
     */
    showDeleted?: boolean | Expression<boolean>;
    /** Whether hidden tasks are returned in the result
     * @default false
     */
    showHidden?: boolean | Expression<boolean>;
    /** Lower bound for a task last modification time (as a RFC 3339 timestamp) to filter by
     */
    updatedMin?: string | Expression<string>;
  };
};

export type GoogleTasksV1TaskGetAllOutput = {
  due?: string;
  etag?: string;
  id?: string;
  kind?: string;
  links?: Array<{
    description?: string;
    link?: string;
    type?: string;
  }>;
  position?: string;
  selfLink?: string;
  status?: string;
  title?: string;
  updated?: string;
  webViewLink?: string;
};

export type GoogleTasksV1TaskGetAllNode = {
  type: 'n8n-nodes-base.googleTasks';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<GoogleTasksV1TaskGetAllParams>;
  output?: Items<GoogleTasksV1TaskGetAllOutput>;
};