export declare enum LLMProvider { ANTHROPIC = "anthropic", OPENAI = "openai", GOOGLE = "google", XAI = "xai" } export interface LLMModelConfig { provider: LLMProvider; modelId: string; displayName: string; maxInputTokens: number; maxOutputTokens: number; costPerMillionInputTokens: number; costPerMillionOutputTokens: number; supportsFunctionCalling: boolean; supportsStreaming: boolean; supportsVision: boolean; } export interface LLMGenerationParams { temperature?: number; maxTokens?: number; topP?: number; topK?: number; frequencyPenalty?: number; presencePenalty?: number; stopSequences?: string[]; streaming?: boolean; } export interface LLMRequestOptions extends LLMGenerationParams { provider?: LLMProvider; model?: string; timeout?: number; retries?: number; retryDelay?: number; cache?: boolean; cacheTTL?: number; runName?: string; metadata?: Record; tags?: string[]; } export interface LLMResponse { content: string; usage: TokenUsageDetails; model: string; provider: LLMProvider; finishReason: 'stop' | 'length' | 'content_filter' | 'function_call'; responseTime: number; cached: boolean; metadata: Record; } export interface TokenUsageDetails { inputTokens: number; outputTokens: number; totalTokens: number; cachedTokens?: number; estimatedCost: number; } export interface TokenCountOptions { model?: string; provider?: LLMProvider; includeMessageOverhead?: boolean; } export type StreamCallback = (chunk: { content: string; isFinal: boolean; usage?: TokenUsageDetails; }) => void | Promise; export declare enum LLMErrorType { API_ERROR = "api_error", RATE_LIMIT = "rate_limit", TIMEOUT = "timeout", INVALID_REQUEST = "invalid_request", AUTHENTICATION = "authentication", CONTEXT_LENGTH_EXCEEDED = "context_length_exceeded", CONTENT_FILTER = "content_filter", UNKNOWN = "unknown" } export interface LLMError extends Error { type: LLMErrorType; statusCode?: number; providerCode?: string; retryable: boolean; retryAfter?: number; originalError?: Error; } export interface TokenBudgetConfig { maxTotalTokens: number; systemPromptReserve: number; outputReserve: number; truncationStrategy: 'start' | 'end' | 'middle' | 'intelligent'; priorityAllocation?: Record; } export interface PromptVariable { name: string; value: string | number | boolean | object; tokenCount: number; required: boolean; truncatable: boolean; } //# sourceMappingURL=llm.types.d.ts.map