/**
 * Dropbox Node - Version 1
 * Discriminator: resource=search, operation=query
 */


interface Credentials {
  dropboxApi: CredentialReference;
  dropboxOAuth2Api: CredentialReference;
}

export type DropboxV1SearchQueryParams = {
  resource: 'search';
  operation: 'query';
/**
 * Means of authenticating with the service
 * @default accessToken
 */
    authentication?: 'accessToken' | 'oAuth2' | Expression<string>;
/**
 * The string to search for. May match across multiple fields based on the request arguments.
 */
    query?: string | Expression<string> | PlaceholderValue;
/**
 * The string to search for. May match across multiple fields based on the request arguments.
 * @default active
 */
    fileStatus?: 'active' | 'deleted' | 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>;
/**
 * Whether to return a simplified version of the response instead of the raw data
 * @default true
 */
    simple?: boolean | Expression<boolean>;
/**
 * Filters
 * @default {}
 */
    filters?: {
    /** File Categories
     * @default []
     */
    file_categories?: Array<'audio' | 'document' | 'paper' | 'folder' | 'image' | 'other' | 'pdf' | 'presentation' | 'spreadsheet' | 'video'>;
    /** Multiple file extensions can be set separated by comma. Example: jpg,pdf.
     */
    file_extensions?: string | Expression<string> | PlaceholderValue;
    /** If this field is not specified, this module searches the entire Dropbox
     */
    path?: string | Expression<string> | PlaceholderValue;
  };
};

export type DropboxV1SearchQueryOutput = {
  '.tag'?: string;
  client_modified?: string;
  content_hash?: string;
  file_owner_team_encrypted_id?: string;
  id?: string;
  is_downloadable?: boolean;
  name?: string;
  path_display?: string;
  path_lower?: string;
  rev?: string;
  server_modified?: string;
  sharing_info?: {
    modified_by?: string;
    parent_shared_folder_id?: string;
    read_only?: boolean;
  };
  size?: number;
};

export type DropboxV1SearchQueryNode = {
  type: 'n8n-nodes-base.dropbox';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<DropboxV1SearchQueryParams>;
  output?: Items<DropboxV1SearchQueryOutput>;
};