import Anthropic from "@anthropic-ai/sdk";
import type { AgentConfig, ModelClient, ModelInfo, ModelResponse, OutputSchema, ReasoningEffort, SessionMessage, ToolChoice, ToolSchema } from "../agent/types.js";
export declare class AnthropicModelClient implements ModelClient {
    private readonly client;
    private readonly timeoutSeconds;
    constructor(apiKey?: string | undefined, options?: {
        timeoutSeconds?: number;
        client?: Anthropic;
    });
    chat(params: {
        model: string;
        system: string;
        messages: SessionMessage[];
        tools: ToolSchema[];
        maxTokens: number;
        reasoningEffort?: ReasoningEffort;
        reasoningMaxTokens?: number;
        toolChoice?: ToolChoice;
        onStream?: (chunk: string) => void;
        signal?: AbortSignal;
        cacheableSystem?: boolean;
        outputSchema?: OutputSchema;
    }): Promise<ModelResponse>;
    listModels(): Promise<ModelInfo[]>;
}
export declare class OpenAICompatibleModelClient implements ModelClient {
    private readonly baseUrl;
    private readonly apiKey;
    private readonly fetchImpl;
    private readonly timeoutSeconds;
    constructor(params?: {
        baseUrl?: string;
        apiKey?: string;
        fetchImpl?: typeof fetch;
        timeoutSeconds?: number;
    });
    chat(params: {
        model: string;
        system: string;
        messages: SessionMessage[];
        tools: ToolSchema[];
        maxTokens: number;
        reasoningEffort?: ReasoningEffort;
        reasoningMaxTokens?: number;
        toolChoice?: ToolChoice;
        onStream?: (chunk: string) => void;
        signal?: AbortSignal;
        cacheableSystem?: boolean;
        outputSchema?: OutputSchema;
    }): Promise<ModelResponse>;
    listModels(): Promise<ModelInfo[]>;
}
export declare function createModelClient(config: AgentConfig): ModelClient;
//# sourceMappingURL=client.d.ts.map