import type { ConversationStore } from './conversation-store.interface'; import type { ToolHandler } from './tool-handler.interface'; /** Which AI provider to use for a given client instance. */ export type ProviderType = 'openai-responses' | 'openai-assistants' | 'anthropic'; /** Provider-agnostic generation controls (OpenAI Responses today). */ export interface GenerationOptions { temperature?: number; topP?: number; maxOutputTokens?: number; truncation?: 'auto' | 'disabled'; includeFileSearchResults?: boolean; } /** Options accepted by createPlatformClient(). */ export interface ClientConfig { /** AI provider to use. */ provider: ProviderType; /** Provider API key (OpenAI or Anthropic depending on provider). */ apiKey: string; /** * Default model to use when none is specified per-call. * OpenAI: 'gpt-4o', 'gpt-4o-mini', etc. * Anthropic: 'claude-opus-4-5', 'claude-sonnet-4-5', etc. */ model?: string; /** * Pluggable persistence for conversation state. * Required for openai-responses (maintains conversationId + lastResponseId). * Optional for openai-assistants and anthropic. */ conversationStore?: ConversationStore; /** * Pluggable tool handler — the app injects its own tool resolution logic. * Required when the chatbot has custom assistant functions. */ toolHandler?: ToolHandler; /** Maximum retries on transient errors. Default: 2. */ maxRetries?: number; /** Request timeout in milliseconds. Default: 60000. */ timeoutMs?: number; /** Client-level generation defaults; per-call overrides win. */ generation?: GenerationOptions; } //# sourceMappingURL=client-config.interface.d.ts.map