import type { OpenRouterResponse } from '../../types/api.js';
export interface ChatCompletionOptions {
    temperature?: number;
    max_tokens?: number;
    top_p?: number;
}
export interface OpenRouterClientOptions {
    initialBackoffMs?: number;
}
export type MessageContent = string | Array<{
    type: 'text';
    text: string;
} | {
    type: 'image_url';
    image_url: {
        url: string;
    };
}>;
export interface ChatMessage {
    role: 'system' | 'user' | 'assistant';
    content: MessageContent;
}
export declare class OpenRouterClient {
    private readonly apiKey;
    private readonly initialBackoffMs;
    constructor(apiKey: string, options?: OpenRouterClientOptions);
    chatCompletion(messages: ChatMessage[], options?: ChatCompletionOptions): Promise<OpenRouterResponse>;
    chatCompletionWithVision(messages: ChatMessage[], options?: ChatCompletionOptions): Promise<OpenRouterResponse>;
    private sendRequest;
}
export declare function createOpenRouterClient(): OpenRouterClient;
//# sourceMappingURL=client.d.ts.map