import { ChatCompletionMessage, ChatCompletionTool } from 'openai/resources/index.js';
import { Logger } from '../../agent-utils/index.js';
import { LlmApi, LlmOptions, ChatLogs, LlmModel } from './index.js';
export type FunctionDefinition = ChatCompletionTool.Function;
export declare class OpenAILlmApi implements LlmApi {
    private _apiKey;
    private _defaultModel;
    private _defaultMaxTokens;
    private _defaultMaxResponseTokens;
    private _logger;
    private _maxRateLimitRetries;
    private _api;
    constructor(_apiKey: string, _defaultModel: LlmModel, _defaultMaxTokens: number, _defaultMaxResponseTokens: number, _logger: Logger, baseURL?: string, _maxRateLimitRetries?: number);
    getMaxContextTokens(): number;
    getMaxResponseTokens(): number;
    getModel(): LlmModel;
    getResponse(chatLog: ChatLogs, functionDefinitions?: FunctionDefinition[], options?: LlmOptions, tries?: number): Promise<ChatCompletionMessage | undefined>;
    private _createChatCompletion;
}
