import { Chat, 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 conversation;
    private botId;
    private logger;
    private citations;
    constructor(context: BotContext);
    getComponents(): Promise<(import("llmz").Component<{
        type: "default";
        name: string;
        aliases: string[];
        description: string;
        examples: {
            name: string;
            description: string;
            code: string;
        }[];
        default: {
            props: import("@bpinternal/zui").ZodObject<{}, "strip", {}, {}>;
            children: never[];
        };
    }> | import("llmz").Component<{
        type: "leaf";
        name: string;
        description: string;
        aliases: never[];
        examples: {
            name: string;
            description: string;
            code: string;
        }[];
        leaf: {
            props: import("@bpinternal/zui").ZodObject<{
                url: import("@bpinternal/zui").ZodString;
                alt: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
            }, "strip", {
                url: string;
                alt?: string | undefined;
            }, {
                url: string;
                alt?: string | undefined;
            }>;
        };
    }> | import("llmz").Component<{
        type: "leaf";
        name: string;
        description: string;
        aliases: never[];
        examples: {
            name: string;
            description: string;
            code: string;
        }[];
        leaf: {
            props: import("@bpinternal/zui").ZodObject<{
                url: import("@bpinternal/zui").ZodString;
                name: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
            }, "strip", {
                url: string;
                name?: string | undefined;
            }, {
                url: string;
                name?: string | undefined;
            }>;
        };
    }> | import("llmz").Component<{
        type: "leaf";
        name: string;
        description: string;
        aliases: never[];
        examples: {
            name: string;
            description: string;
            code: string;
        }[];
        leaf: {
            props: import("@bpinternal/zui").ZodObject<{
                url: import("@bpinternal/zui").ZodString;
                title: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
            }, "strip", {
                url: string;
                title?: string | undefined;
            }, {
                url: string;
                title?: string | undefined;
            }>;
        };
    }> | import("llmz").Component<{
        type: "container";
        name: string;
        description: string;
        aliases: never[];
        examples: {
            name: string;
            description: string;
            code: string;
        }[];
        container: {
            props: import("@bpinternal/zui").ZodObject<{
                title: import("@bpinternal/zui").ZodString;
                subtitle: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
            }, "strip", {
                title: string;
                subtitle?: string | undefined;
            }, {
                title: string;
                subtitle?: string | undefined;
            }>;
            children: ({
                description: string;
                component: {
                    type: "leaf";
                    name: string;
                    description: string;
                    aliases: never[];
                    examples: {
                        name: string;
                        description: string;
                        code: string;
                    }[];
                    leaf: {
                        props: import("@bpinternal/zui").ZodObject<{
                            url: import("@bpinternal/zui").ZodString;
                            alt: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
                        }, "strip", {
                            url: string;
                            alt?: string | undefined;
                        }, {
                            url: string;
                            alt?: string | undefined;
                        }>;
                    };
                };
            } | {
                description: string;
                component: {
                    type: "leaf";
                    description: string;
                    name: string;
                    aliases: string[];
                    examples: {
                        name: string;
                        description: string;
                        code: string;
                    }[];
                    leaf: {
                        props: import("@bpinternal/zui").ZodObject<{
                            action: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodEnum<["say", "url", "postback"]>>;
                            label: import("@bpinternal/zui").ZodString;
                            value: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
                            url: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
                        }, "strip", {
                            label: string;
                            action: "say" | "url" | "postback";
                            value?: string | undefined;
                            url?: string | undefined;
                        }, {
                            label: string;
                            value?: string | undefined;
                            action?: "say" | "url" | "postback" | undefined;
                            url?: string | undefined;
                        }>;
                    };
                };
            })[];
        };
    }>)[]>;
    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