/**
 * Freshdesk Node - Version 1
 * Discriminator: resource=ticket, operation=getAll
 */


interface Credentials {
  freshdeskApi: CredentialReference;
}

/** Get many tickets */
export type FreshdeskV1TicketGetAllParams = {
  resource: 'ticket';
  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 5
 */
    limit?: number | Expression<number>;
/**
 * Options
 * @default {}
 */
    options?: {
    /** Company ID
     */
    companyId?: string | Expression<string> | PlaceholderValue;
    /** Include
     * @default []
     */
    include?: Array<'company' | 'description' | 'requester' | 'stats'>;
    /** Order sort attribute ascending or descending
     * @default desc
     */
    order?: 'asc' | 'desc' | Expression<string>;
    /** Sort collection by object attribute
     */
    orderBy?: 'createdAt' | 'dueBy' | 'updatedAt' | Expression<string>;
    /** Requester Email
     */
    requesterEmail?: string | Expression<string> | PlaceholderValue;
    /** Requester ID
     */
    requesterId?: string | Expression<string> | PlaceholderValue;
    /** Updated Since
     */
    updatedSince?: string | Expression<string>;
  };
};

export type FreshdeskV1TicketGetAllOutput = {
  cc_emails?: Array<string>;
  created_at?: string;
  fr_escalated?: boolean;
  fwd_emails?: Array<string>;
  id?: number;
  is_escalated?: boolean;
  nr_due_by?: null;
  nr_escalated?: boolean;
  priority?: number;
  reply_cc_emails?: Array<string>;
  requester_id?: number;
  source?: number;
  spam?: boolean;
  status?: number;
  subject?: string;
  tags?: Array<string>;
  ticket_cc_emails?: Array<string>;
  updated_at?: string;
};

export type FreshdeskV1TicketGetAllNode = {
  type: 'n8n-nodes-base.freshdesk';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<FreshdeskV1TicketGetAllParams>;
  output?: Items<FreshdeskV1TicketGetAllOutput>;
};