import { NormalizedResponse } from './types';
import { ChatMessage, ToolDefinition } from '../types';
export interface ProviderTransport {
    readonly apiMode: string;
    /**
     * Convert OpenAI-format messages to provider-native format.
     * For Anthropic: returns { system, messages }.
     * For Chat Completions: returns messages unchanged.
     */
    convertMessages(messages: ChatMessage[], options?: Record<string, any>): any;
    /**
     * Convert OpenAI tool definitions to provider-native format.
     */
    convertTools(tools: ToolDefinition[]): any;
    /**
     * Build the complete API request body.
     * Calls convertMessages and convertTools internally.
     */
    buildRequestBody(model: string, messages: ChatMessage[], tools?: ToolDefinition[], params?: Record<string, any>): Record<string, any>;
    /**
     * Normalize raw provider response to standard format.
     */
    normalizeResponse(response: any, options?: Record<string, any>): NormalizedResponse;
    /**
     * Normalize a streaming chunk to extract incremental content/tool calls.
     * Returns null if the chunk is not yet complete.
     */
    normalizeStreamChunk?(chunk: any): {
        content?: string | null;
        toolCalls?: Array<{
            index: number;
            id?: string;
            name?: string;
            arguments?: string;
        }>;
        finishReason?: string | null;
        reasoning?: string | null;
        usage?: {
            promptTokens?: number;
            completionTokens?: number;
            totalTokens?: number;
        };
    } | null;
    /**
     * Get the API endpoint path for this transport.
     */
    getEndpoint(): string;
    /**
     * Get extra headers needed for this transport.
     */
    getExtraHeaders?(): Record<string, string>;
}
//# sourceMappingURL=base.d.ts.map