import { UniversalMessage, ProviderOptions } from '@robota-sdk/core';

/**
 * Anthropic message format for Messages API
 */
interface AnthropicAPIMessage {
    role: 'user' | 'assistant';
    content: string;
}
/**
 * Anthropic message format (legacy)
 */
interface AnthropicMessage {
    role: string;
    content: string;
}
/**
 * Anthropic ConversationHistory adapter
 *
 * Converts UniversalMessage to Anthropic prompt format and Messages API format
 */
declare class AnthropicConversationAdapter {
    /**
     * Convert UniversalMessage array to Anthropic Messages API format
     *
     * @param messages - Array of universal messages
     * @returns Array of messages in Anthropic Messages API format
     */
    static toAnthropicMessages(messages: UniversalMessage[]): AnthropicAPIMessage[];
    /**
     * Convert UniversalMessage array to Anthropic prompt format (legacy)
     */
    static toAnthropicPrompt(messages: UniversalMessage[], systemPrompt?: string): string;
    /**
     * Extract system messages and combine them as system prompt
     */
    static extractSystemPrompt(messages: UniversalMessage[], fallbackSystemPrompt?: string): string | undefined;
    /**
     * Helper for message conversion testing (converts each message individually)
     */
    static convertMessage(msg: UniversalMessage): AnthropicMessage;
}

/**
 * Anthropic provider options
 */
interface AnthropicProviderOptions extends ProviderOptions {
    apiKey: string;
}
/**
 * Anthropic provider class
 */
declare class AnthropicProvider {
    constructor(_options: AnthropicProviderOptions);
}

declare function createAnthropicProvider(_options: AnthropicProviderOptions): void;

export { AnthropicConversationAdapter, AnthropicProvider, type AnthropicProviderOptions, createAnthropicProvider };
