/**
 * AWS Bedrock Client Implementation
 * Based on official AWS Bedrock documentation for Anthropic Claude models
 */
export interface BedrockMessage {
    role: "user" | "assistant";
    content: string | Array<{
        type: "text" | "image";
        text?: string;
        source?: {
            type: "base64";
            media_type: string;
            data: string;
        };
    }>;
}
export interface BedrockRequest {
    anthropic_version: "bedrock-2023-05-31";
    max_tokens: number;
    messages: BedrockMessage[];
    system?: string;
    temperature?: number;
    top_p?: number;
    top_k?: number;
    stop_sequences?: string[];
}
export interface BedrockResponse {
    id: string;
    model: string;
    type: "message";
    role: "assistant";
    content: Array<{
        type: "text";
        text: string;
    }>;
    stop_reason: "end_turn" | "max_tokens" | "stop_sequence";
    stop_sequence?: string;
    usage: {
        input_tokens: number;
        output_tokens: number;
    };
}
export declare class BedrockClient {
    private region;
    constructor(region?: string);
    /**
     * Invoke a Claude model on Bedrock using the correct Messages API format
     */
    invokeModel(modelId: string, messages: BedrockMessage[], options?: {
        max_tokens?: number;
        temperature?: number;
        top_p?: number;
        top_k?: number;
        system?: string;
        stop_sequences?: string[];
    }): Promise<BedrockResponse>;
    /**
     * Invoke model with streaming response
     */
    invokeModelWithStream(modelId: string, messages: BedrockMessage[], options?: {
        max_tokens?: number;
        temperature?: number;
        top_p?: number;
        top_k?: number;
        system?: string;
        stop_sequences?: string[];
        onChunk?: (chunk: string) => void;
    }): Promise<string>;
    /**
     * Call the Bedrock API using AWS SDK
     */
    private callBedrockAPI;
    /**
     * Convert simple text prompt to Bedrock Messages format
     */
    static createSimpleMessage(prompt: string, role?: "user" | "assistant"): BedrockMessage;
    /**
     * Check if Bedrock is properly configured
     */
    static checkConfiguration(): Promise<{
        configured: boolean;
        region?: string;
        identity?: any;
        error?: string;
    }>;
}
//# sourceMappingURL=bedrock-client.d.ts.map