import { Message } from "../chat/Message.js"; import { Provider, ChatRequest, ChatResponse, ChatChunk, ModelInfo, ImageRequest, ImageResponse, TranscriptionRequest, TranscriptionResponse, ModerationRequest, ModerationResponse, EmbeddingRequest, EmbeddingResponse, ProviderCapabilities } from "./Provider.js"; /** * Abstract base class for all LLM providers. * Provides common functionality and default implementations for unsupported features. * Each provider must implement the abstract methods and can override default implementations. */ export declare abstract class BaseProvider implements Provider { abstract apiBase(): string; abstract headers(): Record; protected abstract providerName(): string; get id(): string; defaultModel(_feature?: string): string; protected throwUnsupportedError(feature: string): never; abstract chat(request: ChatRequest): Promise; capabilities?: ProviderCapabilities; /** * Provides a set of default capabilities where everything is disabled. * Useful for custom providers to start with a safe baseline. */ protected defaultCapabilities(): ProviderCapabilities; stream?(_request: ChatRequest): AsyncIterable; listModels?(): Promise; paint?(_request: ImageRequest): Promise; transcribe?(_request: TranscriptionRequest): Promise; moderate?(_request: ModerationRequest): Promise; embed?(_request: EmbeddingRequest): Promise; formatToolResultMessage(toolCallId: string, content: string, options?: { isError?: boolean; }): Message; } //# sourceMappingURL=BaseProvider.d.ts.map