/**
 * Keap Node - Version 1
 * Discriminator: resource=file, operation=getAll
 */


interface Credentials {
  keapOAuth2Api: CredentialReference;
}

/** Retrieve many companies */
export type KeapV1FileGetAllParams = {
  resource: 'file';
  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 100
 */
    limit?: number | Expression<number>;
/**
 * Filters
 * @default {}
 */
    filters?: {
    /** Filter based on Contact ID, if user has permission to see Contact files
     * @default 0
     */
    contactId?: number | Expression<number>;
    /** Filter files based on name, with '*' preceding or following to indicate LIKE queries
     */
    name?: string | Expression<string> | PlaceholderValue;
    /** Filter based on the permission of files
     * @default both
     */
    permission?: 'user' | 'company' | 'both' | Expression<string>;
    /** Filter based on the type of file
     */
    type?: 'application' | 'attachment' | 'contact' | 'digitalProduct' | 'fax' | 'funnel' | 'hidden' | 'image' | 'import' | 'logoThumnail' | 'reSampledImage' | 'styleCart' | 'templateThumnail' | 'ticket' | 'webform' | Expression<string>;
    /** Include public or private files in response
     * @default both
     */
    viewable?: 'public' | 'private' | 'both' | Expression<string>;
  };
};

export type KeapV1FileGetAllNode = {
  type: 'n8n-nodes-base.keap';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<KeapV1FileGetAllParams>;
};