/** * LLM Router * * Routes AI requests to OpenAI or Replit based on rules and provider settings. * Enforces hard rule: Ticket Mate ticket operations ALWAYS use OpenAI. */ import type OpenAI from "openai"; export interface LLMRequestOptions { userId: string; accountId?: string; requestKind: string; messages: OpenAI.Chat.Completions.ChatCompletionMessageParam[]; model?: string; temperature?: number; maxTokens?: number; responseFormat?: OpenAI.Chat.Completions.ChatCompletionCreateParams["response_format"]; preferReplit?: boolean; traceId?: string; requestId?: string; } export interface LLMResponse { text: string; provider: "openai" | "replit"; model: string; usage?: { promptTokens?: number; completionTokens?: number; totalTokens?: number; checkpoints?: number; credits?: number; }; } export declare class LLMQuotaExceededError extends Error { readonly limits: any; readonly currentUsage: number; constructor(message: string, limits: any, currentUsage: number); } export declare class LLMGlobalLimitExceededError extends Error { constructor(message: string); } /** * Route LLM request to appropriate provider */ export declare function runLLM(options: LLMRequestOptions): Promise; /** * Simple text completion helper */ export declare function completeTextWithRouter(prompt: string, options: { userId: string; accountId?: string; requestKind: string; model?: string; temperature?: number; preferReplit?: boolean; }): Promise; //# sourceMappingURL=llmRouter.d.ts.map