import { ChatCompletionMessageToolCall } from "openai/resources";
import { ChatCompletionMessageParam, ChatCompletionFunctionTool } from "openai/resources.js";
import type { GatewayConfig, ModelConfig } from "../types/index.js";
import { type ClaudeUsage } from "../utils/cacheControlUtils.js";
/**
 * Resets the rate limiter state. Primarily used for testing.
 */
export declare function resetRateLimiter(): void;
export interface CallAgentOptions {
    gatewayConfig: GatewayConfig;
    modelConfig: ModelConfig;
    messages: ChatCompletionMessageParam[];
    sessionId?: string;
    abortSignal?: AbortSignal;
    workdir: string;
    tools?: ChatCompletionFunctionTool[];
    model?: string;
    systemPrompt?: string;
    maxTokens?: number;
    onContentUpdate?: (content: string) => void;
    onToolUpdate?: (toolCall: {
        id: string;
        name: string;
        parameters: string;
        parametersChunk?: string;
        stage?: "start" | "streaming" | "running" | "end";
    }) => void;
    onReasoningUpdate?: (content: string) => void;
}
export interface CallAgentResult {
    content?: string;
    tool_calls?: ChatCompletionMessageToolCall[];
    reasoning_content?: string;
    usage?: ClaudeUsage;
    finish_reason?: "stop" | "length" | "tool_calls" | "content_filter" | "function_call" | null;
    response_headers?: Record<string, string>;
    additionalFields?: Record<string, unknown>;
}
export declare function callAgent(options: CallAgentOptions): Promise<CallAgentResult>;
export interface CompressMessagesOptions {
    gatewayConfig: GatewayConfig;
    modelConfig: ModelConfig;
    messages: ChatCompletionMessageParam[];
    abortSignal?: AbortSignal;
    model?: string;
}
export interface CompressMessagesResult {
    content: string;
    usage?: {
        prompt_tokens: number;
        completion_tokens: number;
        total_tokens: number;
    };
}
export declare function compressMessages(options: CompressMessagesOptions): Promise<CompressMessagesResult>;
export interface ProcessWebContentOptions {
    gatewayConfig: GatewayConfig;
    modelConfig: ModelConfig;
    content: string;
    prompt: string;
    abortSignal?: AbortSignal;
    model?: string;
}
export interface ProcessWebContentResult {
    content: string;
    usage?: {
        prompt_tokens: number;
        completion_tokens: number;
        total_tokens: number;
    };
}
export declare function processWebContent(options: ProcessWebContentOptions): Promise<ProcessWebContentResult>;
export interface BtwOptions {
    gatewayConfig: GatewayConfig;
    modelConfig: ModelConfig;
    messages: ChatCompletionMessageParam[];
    question: string;
    abortSignal?: AbortSignal;
    model?: string;
}
export interface BtwResult {
    content: string;
    usage?: {
        prompt_tokens: number;
        completion_tokens: number;
        total_tokens: number;
    };
}
export declare function btw(options: BtwOptions): Promise<BtwResult>;
//# sourceMappingURL=aiService.d.ts.map