/** * LLM Provider Interface * Abstraction for LLM calls - allows different implementations (backend proxy, local, etc.) */ /** * Labeled image for multi-image LLM requests * Used for before/after comparisons or multi-screenshot analysis */ export interface LabeledImage { label: string; dataUrl: string; } /** * LLM request - camelCase for TypeScript */ export interface LLMRequest { model?: string; systemPrompt?: string; userPrompt?: string; imageUrl?: string; images?: LabeledImage[]; } /** * LLM response */ export interface LLMResponse { answer: string; usage?: { inputTokens: number; outputTokens: number; }; } /** * Abstract LLM provider interface * Implementations can call backend proxy, local LLM, or any other service */ export interface LLMProvider { /** * Call LLM with given request * Implementations handle authentication, API calls, retries, etc. */ callLLM(request: LLMRequest): Promise; /** * Optional: Set logger for LLM provider to log its activities */ setLogger?(logger: (message: string, level?: 'log' | 'error' | 'warn') => void): void; } //# sourceMappingURL=llm-provider.d.ts.map