import OpenAI from "openai";
import { ArgumentMap, FunctionMap } from "./functionMap";
import { IRequiresActionResponse } from "./types/requires-action-response";
declare class Thread {
    protected openai: OpenAI;
    id: string;
    userId: string;
    constructor(params: {
        id?: string;
        userId?: string;
    });
    initialize(): Promise<void>;
    /**
     * Runのステータスを確認し完了するまで待機
     * @param threadId スレッド ID
     * @param runId Run ID
     * @returns
     */
    checkRunStatus(params: {
        runId: string;
    }): Promise<OpenAI.Beta.Threads.Runs.Run>;
    handleRequiresAction(params: {
        run: OpenAI.Beta.Threads.Runs.Run;
        functionMap: FunctionMap;
        argumentMap: ArgumentMap;
    }): Promise<IRequiresActionResponse>;
    /**
     * メッセージを作成
     * @param message 送信するメッセージ
     * @returns
     */
    createMessage(params: {
        message: string;
    }): Promise<OpenAI.Beta.Threads.Messages.Message & {
        _request_id?: string | null;
    }>;
    /**
     * メッセージを送信
     * @param message 送信するメッセージ
     * @returns
     */
    run(params: {
        assistantId: string;
        functionMap: FunctionMap;
        argumentMap: ArgumentMap;
    }): Promise<OpenAI.Beta.Threads.Runs.Run>;
    retrieve(): Promise<(OpenAI.Beta.Threads.Thread & {
        _request_id?: string | null;
    }) | null>;
    messages(): Promise<OpenAI.Beta.Threads.Messages.MessagesPage>;
}
export default Thread;
