/**
 * Xero Node - Version 1
 * Discriminator: resource=contact, operation=getAll
 */


interface Credentials {
  xeroOAuth2Api: CredentialReference;
}

/** Get many contacts */
export type XeroV1ContactGetAllParams = {
  resource: 'contact';
  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;
 */
    organizationId?: 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 100
 */
    limit?: number | Expression<number>;
/**
 * Options
 * @default {}
 */
    options?: {
    /** Whether contacts with a status of ARCHIVED will be included in the response
     * @default false
     */
    includeArchived?: boolean | Expression<boolean>;
    /** Order by any element returned
     */
    orderBy?: string | Expression<string> | PlaceholderValue;
    /** Sort Order
     */
    sortOrder?: 'ASC' | 'DESC' | Expression<string>;
    /** The where parameter allows you to filter on endpoints and elements that don't have explicit parameters. &lt;a href="https://developer.xero.com/documentation/api/requests-and-responses#get-modified"&gt;Examples Here&lt;/a&gt;.
     */
    where?: string | Expression<string> | PlaceholderValue;
  };
};

export type XeroV1ContactGetAllOutput = {
  Addresses?: Array<{
    AddressType?: string;
    City?: string;
    Country?: string;
    PostalCode?: string;
    Region?: string;
  }>;
  BankAccountDetails?: string;
  ContactID?: string;
  ContactStatus?: string;
  EmailAddress?: string;
  HasAttachments?: boolean;
  HasValidationErrors?: boolean;
  IsCustomer?: boolean;
  IsSupplier?: boolean;
  Name?: string;
  Phones?: Array<{
    PhoneAreaCode?: string;
    PhoneCountryCode?: string;
    PhoneNumber?: string;
    PhoneType?: string;
  }>;
  UpdatedDateUTC?: string;
};

export type XeroV1ContactGetAllNode = {
  type: 'n8n-nodes-base.xero';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<XeroV1ContactGetAllParams>;
  output?: Items<XeroV1ContactGetAllOutput>;
};