import OpenAI from "openai";
import { ArgumentMap, FunctionMap } from "./functionMap";
export interface IAssistantChatResponseMessage {
    type: "text";
    text: string;
}
export interface IAssistantChatResponse {
    thread: OpenAI.Beta.Threads.Thread | null;
    run: OpenAI.Beta.Threads.Runs.Run | null;
    assistant: {
        id: string;
        message: IAssistantChatResponseMessage;
    };
    error: string | null;
}
declare class Assistant {
    private openai;
    private assistantId;
    private assistantName;
    private functionMap;
    private argumentMap;
    constructor(params: {
        assistantId: string;
        assistantName?: string;
        functionMap?: FunctionMap;
        argumentMap?: ArgumentMap;
        apiKey?: string;
    });
    get id(): string;
    getName(): Promise<string>;
    static create(params: {
        assistantCreateParams: OpenAI.Beta.Assistants.AssistantCreateParams;
        functionMap?: FunctionMap;
        argumentMap?: ArgumentMap;
        apiKey?: string;
    }): Promise<Assistant>;
    static delete(params: {
        assistantId: string;
        apiKey?: string;
    }): Promise<void>;
    chat(params: {
        userMessage: string;
        threadId?: string;
    }): Promise<IAssistantChatResponse>;
}
export default Assistant;
