import OpenAI from "openai";
type OpenAIParams = OpenAI.Chat.Completions.ChatCompletionCreateParams.ChatCompletionCreateParamsNonStreaming;
type Messages = OpenAIParams["messages"];
type Message = Messages[0];
export declare class Model {
    history: Messages;
    openai: OpenAI;
    selfReflected: number;
    parallelToolCalls: boolean;
    isManager: boolean;
    model: OpenAI.Chat.Completions.ChatCompletionCreateParams["model"];
    selfReflect: boolean;
    constructor(options?: {
        parallelToolCalls?: boolean;
        OPENAI_API_KEY?: string;
        model?: OpenAI.Chat.Completions.ChatCompletionCreateParams["model"];
        selfReflect?: boolean;
    });
    call(systemMessage: string, prompt: Message, tools?: OpenAI.Chat.Completions.ChatCompletionTool[], context?: string): Promise<string>;
    callStream(systemMessage: string, prompt: Message, callback: (message: string) => void, tools?: OpenAI.Chat.Completions.ChatCompletionTool[], context?: string): Promise<AsyncIterableIterator<string>>;
    processingToolCall(tool_call: OpenAI.Chat.Completions.ChatCompletionMessageToolCall): Promise<OpenAI.Chat.Completions.ChatCompletionToolMessageParam>;
    callGPT(messages: Messages, tools?: OpenAI.Chat.Completions.ChatCompletionTool[], reflected?: boolean): Promise<OpenAI.Chat.Completions.ChatCompletionMessage>;
    callGPTStream(messages: Messages, callback: (message: string) => void, tools?: OpenAI.Chat.Completions.ChatCompletionTool[]): Promise<AsyncIterableIterator<string>>;
}
export {};
//# sourceMappingURL=openai.d.ts.map