import Anthropic from '@anthropic-ai/sdk';
import { AbstractDriver, type AIModel, type Completion, type CompletionChunkObject, type DriverOptions, type EmbeddingsOptions, type EmbeddingsResult, type ExecutionOptions, LlumiverseError, type LlumiverseErrorContext, type ModelSearchPayload, type PromptSegment, Providers } from "@llumiverse/core";
import { type ClaudePrompt } from "../shared/claude-messages.js";
export interface AnthropicDriverOptions extends DriverOptions {
    apiKey?: string;
    baseURL?: string;
}
export declare class AnthropicDriver extends AbstractDriver<AnthropicDriverOptions, ClaudePrompt> {
    provider: Providers;
    client: Anthropic;
    constructor(opts: AnthropicDriverOptions);
    protected formatPrompt(segments: PromptSegment[], opts: ExecutionOptions): Promise<ClaudePrompt>;
    requestTextCompletion(prompt: ClaudePrompt, options: ExecutionOptions): Promise<Completion>;
    requestTextCompletionStream(prompt: ClaudePrompt, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>>;
    listModels(_params?: ModelSearchPayload): Promise<AIModel[]>;
    validateConnection(): Promise<boolean>;
    generateEmbeddings(_opts: EmbeddingsOptions): Promise<EmbeddingsResult>;
    buildStreamingConversation(prompt: ClaudePrompt, result: unknown[], toolUse: unknown[] | undefined, options: ExecutionOptions): ClaudePrompt;
    formatLlumiverseError(error: unknown, context: LlumiverseErrorContext): LlumiverseError;
}
//# sourceMappingURL=index.d.ts.map