import type { TypeWithI18N } from './base' export enum LOC { tools = 'tools', app = 'app', } export enum AuthType { none = 'none', apiKey = 'api_key', } export type Credential = { 'auth_type': AuthType 'api_key_header'?: string 'api_key_value'?: string } export enum CollectionType { all = 'all', builtIn = 'builtin', custom = 'api', } export type Emoji = { background: string content: string } export type Collection = { id: string name: string author: string description: TypeWithI18N icon: string | Emoji label: TypeWithI18N type: CollectionType team_credentials: Record is_team_authorization: boolean allow_delete: boolean } export type ToolParameter = { name: string label: TypeWithI18N human_description: TypeWithI18N type: string required: boolean default: string options?: { label: TypeWithI18N value: string }[] } export type Tool = { name: string label: TypeWithI18N description: any parameters: ToolParameter[] } export type ToolCredential = { name: string label: TypeWithI18N help: TypeWithI18N placeholder: TypeWithI18N type: string required: boolean default: string options?: { label: TypeWithI18N value: string }[] } export type CustomCollectionBackend = { provider: string original_provider?: string credentials: Credential icon: Emoji schema_type: string schema: string privacy_policy: string tools?: ParamItem[] } export type ParamItem = { name: string label: TypeWithI18N human_description: TypeWithI18N type: string required: boolean default: string min?: number max?: number options?: { label: TypeWithI18N value: string }[] } export type CustomParamSchema = { operation_id: string // name summary: string server_url: string method: string parameters: ParamItem[] }