import OpenAI from 'openai';
import type { AvailableModel } from '../../../execution/AvailableModel';
import type { ChatPromptResult } from '../../../execution/PromptResult';
import type { Usage } from '../../../execution/Usage';
import type { Prompt } from '../../../types/Prompt';
import type { string_markdown_text } from '../../../types/string_markdown';
import type { string_title } from '../../../types/string_title';
import type { computeOpenAiUsage } from '../computeOpenAiUsage';
import type { OpenAiCompatibleExecutionToolsNonProxiedOptions } from '../OpenAiCompatibleExecutionToolsOptions';
/**
 * Type describing dependencies needed by `callOpenAiCompatibleChatModel`.
 */
type CallOpenAiCompatibleChatModelOptions = {
    readonly prompt: Prompt;
    readonly onProgress: (chunk: ChatPromptResult) => void;
    readonly title: string_title & string_markdown_text;
    readonly executionToolsOptions: OpenAiCompatibleExecutionToolsNonProxiedOptions;
    readonly getClient: () => Promise<OpenAI>;
    readonly executeRateLimitedRequest: <T>(requestFn: () => Promise<T>) => Promise<T>;
    readonly computeUsage: (...args: Parameters<typeof computeOpenAiUsage>) => Usage;
    readonly getDefaultChatModel: () => AvailableModel;
};
/**
 * Calls the OpenAI-compatible chat model flow, including tool execution and unsupported-parameter retries.
 *
 * @private function of `OpenAiCompatibleExecutionTools`
 */
export declare function callOpenAiCompatibleChatModel(options: CallOpenAiCompatibleChatModelOptions): Promise<ChatPromptResult>;
export {};
