export interface Message { role: 'user' | 'assistant'; content: string; } export interface UnifiedChunk { type: 'thinking' | 'text' | 'tool_call_delta'; content: string; } export interface UnifiedToolCall { id: string; name: string; args: Record; } export interface UnifiedResponse { thinking: string; text: string; toolCalls: UnifiedToolCall[]; usage: { inputTokens: number; outputTokens: number; latencyMs: number; }; metadata: { providerId: string; modelId: string; fallbackTriggered: boolean; incomplete: boolean; }; } export interface RequestOptions { taskType?: 'chat' | 'code' | 'analysis' | 'unknown'; deterministic?: boolean; forceProvider?: string; allowFallback?: boolean; timeoutMs?: number; requiresTools?: boolean; signal?: AbortSignal; } export interface StreamOptions extends RequestOptions { systemPrompt: string; maxTokens?: number; effort?: string; onThinkingDelta?: (text: string) => void; onTextDelta?: (text: string) => void; } export interface SendOptions extends RequestOptions { systemPrompt: string; maxTokens?: number; effort?: string; } export type ProviderCapability = 'thinking' | 'tool_calling' | 'streaming'; export type ProviderStatus = 'healthy' | 'degraded' | 'down'; export interface BaseProvider { readonly id: string; readonly capabilities: ReadonlySet; streamMessage(messages: Message[], options: StreamOptions): Promise; sendMessage(messages: Message[], options: SendOptions): Promise; } export interface ProviderConfig { id: string; priority: number; enabled: boolean; maxConcurrency: number; } export interface OrchestrationEvent { timestamp: string; sessionId: string; command: string; primaryProvider: string; actualProvider: string; fallbackReason?: 'timeout' | 'rate_limit' | 'server_error' | 'capability_mismatch' | 'network_error'; latencyMs: number; cost: number; retryCount: number; } //# sourceMappingURL=types.d.ts.map