import type { QirrelContext } from "../types"; import { LLMCache } from "./cache"; import { type FallbackHandler } from "./fallback"; import type { LLMAdapter, LLMConfig, LLMResponse } from "./types"; export declare abstract class BaseLLMAdapter implements LLMAdapter { protected config: LLMConfig; protected cache?: LLMCache; protected fallbackHandler: FallbackHandler; protected readonly defaultCacheTtl: number; constructor(config: LLMConfig, enableCache?: boolean, fallbackHandler?: FallbackHandler); abstract generate(prompt: string, options?: Partial): Promise; generateWithContext(input: QirrelContext, promptTemplate: string, options?: Partial): Promise; protected mergeConfig(options?: Partial): LLMConfig; protected getCacheKey(prompt: string, config: LLMConfig): string; protected generateWithCache(prompt: string, options?: Partial, generator?: (config: LLMConfig) => Promise): Promise; }