/** * Base LLM Provider * * @requirement REQ-LLM-001 * @design DES-KATASHIRO-003-LLM §3.1.1 */ import type { z, ZodType } from 'zod'; import type { LLMProvider, ProviderConfig, GenerateRequest, GenerateResponse, StreamChunk } from '../types.js'; /** * 抽象LLMプロバイダー基底クラス */ export declare abstract class BaseLLMProvider implements LLMProvider { abstract readonly name: string; abstract readonly supportedModels: string[]; protected config: ProviderConfig; protected defaultModel: string; constructor(config?: ProviderConfig); /** * デフォルトモデル取得 */ protected abstract getDefaultModel(): string; /** * テキスト生成(抽象メソッド) */ abstract generate(request: GenerateRequest): Promise; /** * ストリーミング生成(抽象メソッド) */ abstract generateStream(request: GenerateRequest): AsyncGenerator; /** * 構造化出力生成 */ generateStructured(request: GenerateRequest, schema: T): Promise>; /** * トークン数カウント(デフォルト実装) */ countTokens(text: string, _model?: string): Promise; /** * モデルサポート確認 */ isModelSupported(model: string): boolean; /** * モデル取得(デフォルトまたは指定) */ protected getModel(request: GenerateRequest): string; /** * Zodスキーマ→JSONスキーマ変換(簡易実装) */ protected zodToJsonSchema(schema: ZodType): Record; } //# sourceMappingURL=BaseLLMProvider.d.ts.map