import { Chat, Component, RenderedComponent } from "llmz";
import { TranscriptItem } from "./transcript";
import { AnyIncomingEvent, AnyIncomingMessage } from "@botpress/sdk/dist/bot";
import { BotContext } from "../context/context";
type Msg = {
    type: string;
    payload: Record<string, any>;
    tags?: Record<string, any>;
};
export declare class BotpressChat extends Chat {
    private _transcript;
    private client;
    private cognitive;
    private conversation;
    private botId;
    private logger;
    private citations;
    constructor(context: BotContext);
    getComponents(): Promise<Component<import("llmz").ComponentDefinition>[]>;
    clearTranscript(): Promise<void>;
    prependToTranscript(items: TranscriptItem[]): Promise<void>;
    fetchTranscript(): Promise<TranscriptItem[]>;
    compactTranscript(): Promise<void>;
    saveTranscript(): Promise<void>;
    sendMessage(message: Msg): Promise<void>;
    handle(message: RenderedComponent): Promise<void>;
    /**
     * This is a temporary workaround as the Content-Type of images on Telegram are "binary/octet-stream"
     * And OpenAI integration does not support this type. It needs to be "image/jpeg" or "image/png".
     * This function fetches the image from Telegram, uploads it to the file storage, and replaces the URL in the message.
     */
    __temporary__fixTelegramImage(message: AnyIncomingMessage<any>): Promise<AnyIncomingMessage<any>>;
    addEvent(event: AnyIncomingEvent<any> | {
        id: string;
        type: string;
        payload: any;
        createdAt: string;
    }): Promise<void>;
    addMessage(message: AnyIncomingMessage<any>): Promise<void>;
}
export {};
//# sourceMappingURL=chat.d.ts.map