/**
 * Todoist Node - Version 2.1
 * Discriminator: resource=task, operation=getAll
 */


interface Credentials {
  todoistApi: CredentialReference;
  todoistOAuth2Api: CredentialReference;
}

/** Task resource */
export type TodoistV21TaskGetAllParams = {
  resource: 'task';
  operation: 'getAll';
  authentication?: 'apiKey' | 'oAuth2' | 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 50
 */
    limit?: number | Expression<number>;
/**
 * Filters
 * @default {}
 */
    filters?: {
    /** Filter by any &lt;a href="https://get.todoist.help/hc/en-us/articles/205248842"&gt;supported filter.&lt;/a&gt;
     */
    filter?: string | Expression<string> | PlaceholderValue;
    /** A list of the task IDs to retrieve, this should be a comma-separated list
     */
    ids?: string | Expression<string> | PlaceholderValue;
    /** Filter tasks by label. Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     * @default {}
     */
    labelId?: string | Expression<string>;
    /** IETF language tag defining what language filter is written in, if differs from default English
     */
    lang?: string | Expression<string> | PlaceholderValue;
    /** Filter tasks by parent task ID. Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     */
    parentId?: string | Expression<string>;
    /** Filter tasks by project ID. Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     */
    projectId?: string | Expression<string>;
    /** Filter tasks by section ID. Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     */
    sectionId?: string | Expression<string>;
  };
};

export type TodoistV21TaskGetAllOutput = {
  comment_count?: number;
  content?: string;
  created_at?: string;
  creator_id?: string;
  description?: string;
  id?: string;
  is_completed?: boolean;
  labels?: Array<string>;
  order?: number;
  priority?: number;
  project_id?: string;
  url?: string;
};

export type TodoistV21TaskGetAllNode = {
  type: 'n8n-nodes-base.todoist';
  version: 2.1;
  credentials?: Credentials;
  config: NodeConfig<TodoistV21TaskGetAllParams>;
  output?: Items<TodoistV21TaskGetAllOutput>;
};