import * as AnthropicAPI from '@anthropic-ai/sdk';
import { ContentBlock, TextBlockParam } from "@anthropic-ai/sdk/resources/index.js";
import { AIModel, Completion, CompletionChunkObject, ExecutionOptions, PromptOptions, PromptSegment, ToolUse } from "@llumiverse/core";
import { VertexAIDriver } from "../index.js";
import { ModelDefinition } from "../models.js";
type MessageParam = AnthropicAPI.Anthropic.MessageParam;
interface ClaudePrompt {
    messages: MessageParam[];
    system: TextBlockParam[];
}
export declare class ClaudeModelDefinition implements ModelDefinition<ClaudePrompt> {
    model: AIModel;
    constructor(modelId: string);
    createPrompt(_driver: VertexAIDriver, segments: PromptSegment[], options: PromptOptions): Promise<ClaudePrompt>;
    requestTextCompletion(driver: VertexAIDriver, prompt: ClaudePrompt, options: ExecutionOptions): Promise<Completion>;
    requestTextCompletionStream(driver: VertexAIDriver, prompt: ClaudePrompt, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>>;
}
export declare function collectTools(content: ContentBlock[]): ToolUse[] | undefined;
export {};
//# sourceMappingURL=claude.d.ts.map