import { ChatFunctionHandler } from './openAI';
export interface ClaudeCacheControl {
    type: 'ephemeral';
    ttl?: '5m' | '1h';
}
export interface ClaudeTool {
    name: string;
    description: string;
    input_schema: {
        type: 'object';
        properties: object;
        required?: string[];
    };
    input_examples?: Array<Record<string, unknown>>;
    defer_loading?: boolean;
    type?: string;
    allowed_callers?: string[];
    cache_control?: ClaudeCacheControl;
}
export interface ClaudeSystemBlock {
    type: 'text';
    text: string;
    cache_control?: ClaudeCacheControl;
}
export interface ClaudeMCPServer {
    type: 'url';
    url: string;
    name: string;
    authorization_token?: string;
}
export type ClaudeToolChoice = {
    type: 'auto';
    disable_parallel_tool_use?: boolean;
} | {
    type: 'any';
    disable_parallel_tool_use?: boolean;
} | {
    type: 'tool';
    name: string;
    disable_parallel_tool_use?: boolean;
} | {
    type: 'none';
};
export interface ClaudeMetadata {
    user_id?: string;
}
export type ClaudeThinking = {
    type: 'enabled';
    budget_tokens: number;
    display?: 'summarized' | 'omitted';
} | {
    type: 'disabled';
} | {
    type: 'adaptive';
    display?: 'summarized' | 'omitted';
};
export interface ClaudeChat {
    model?: string;
    max_tokens?: number;
    stop_sequences?: string[];
    system_prompt?: string | ClaudeSystemBlock[];
    tools?: ClaudeTool[];
    tool_choice?: ClaudeToolChoice;
    function_handler?: ChatFunctionHandler;
    mcp_servers?: ClaudeMCPServer[];
    metadata?: ClaudeMetadata;
    thinking?: ClaudeThinking;
    service_tier?: 'auto' | 'standard_only';
    inference_geo?: string;
    custom_base_url?: string;
    cache_control?: ClaudeCacheControl;
}
export type Claude = true | ClaudeChat;
//# sourceMappingURL=claude.d.ts.map