import Usage from "../models/chatgpt-usage.js";
import Options from "../models/chatgpt-options.js";
import Conversation from "../models/conversation.js";
type ContentBlock = {
    type: "text";
    text: string;
} | {
    type: "image_url";
    image_url: {
        url: string;
        detail?: "low" | "high" | "auto";
    };
};
declare class ChatGPT {
    options: Options;
    private db;
    onUsage: (usage: Usage) => void;
    constructor(key: string | string[], options?: Options);
    private getOpenAIKey;
    private chunksToLines;
    private linesToMessages;
    private streamCompletion;
    private getInstructions;
    addConversation(conversationId: string, userName?: string): Conversation;
    getConversation(conversationId: string, userName?: string): Conversation;
    resetConversation(conversationId: string): Conversation;
    ask(prompt: string, conversationId?: string, userName?: string): Promise<string>;
    askStream(data: (arg0: string) => void, usage: (usage: Usage) => void, prompt: string, conversationId?: string, userName?: string): Promise<string>;
    askV1(prompt: string | ContentBlock[], conversationId?: string, type?: number, function_name?: string, tool_call_id?: string, userName?: string, response_format?: any): Promise<any>;
    askPost(data: (arg0: string) => void, usage: (usage: Usage) => void, prompt: string | ContentBlock[], conversationId?: string, function_name?: string, userName?: string, type?: number, tool_call_id?: string, response_format?: any): Promise<any>;
    moderate(prompt: string, key: string): Promise<boolean>;
    private generatePrompt;
    private generateMessages;
    private countTokens;
    private getToday;
    private getTime;
    private wait;
}
export default ChatGPT;
