import type { App } from 'vue';
import SuspendedBallChat from './components/SuspendedBallChat/SuspendedBallChat.vue';
import ChatPanel from './components/ChatPanel/ChatPanel.vue';
import './styles/variables.less';
import './styles/mixins.less';
export { SuspendedBallChat, ChatPanel };
export * from './types';
export declare function install(app: App): void;
declare const _default: {
    install: typeof install;
    SuspendedBallChat: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        title: {
            type: import("vue").PropType<string>;
            default: string;
        };
        url: {
            type: import("vue").PropType<string>;
            default: string;
        };
        size: {
            type: import("vue").PropType<import("./types").SizePreset>;
            default: string;
        };
        showHeader: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showCloseButton: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showClearButton: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showThemeToggle: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showFeedbackButton: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        welcomeConfig: {
            type: import("vue").PropType<import("./types").WelcomeConfig>;
        };
        presetTasks: {
            type: import("vue").PropType<import("./types").PresetTask[]>;
        };
        storageKey: {
            type: import("vue").PropType<string>;
            default: string;
        };
        domainName: {
            type: import("vue").PropType<string>;
            required: true;
        };
        maxHistoryCount: {
            type: import("vue").PropType<number>;
            default: number;
        };
        enableImageUpload: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableMultiImageUpload: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableVoiceInput: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableDeepThinking: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        customTools: {
            type: import("vue").PropType<import("./types").ChatInputCustomTool[]>;
            default: () => never[];
        };
        maxInputLength: {
            type: import("vue").PropType<number>;
        };
        supportedCustomContext: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        disableInput: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        customPlaceholder: {
            type: import("vue").PropType<string>;
            default: string;
        };
        options: {
            type: import("vue").PropType<Intl.DateTimeFormatOptions>;
            default: () => {
                year: string;
                month: string;
                day: string;
                hour: string;
                minute: string;
            };
        };
        assistantConfig: {
            type: import("vue").PropType<import("./types").AssistantConfig>;
        };
        enableInsertMessage: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showAvatar: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        alignUserMessagesRight: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        contextHistoryCount: {
            type: import("vue").PropType<number>;
            default: number;
        };
        unvalidateHistory: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableStreaming: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        callbacks: {
            type: import("vue").PropType<import("./types").ChatCallbacks>;
        };
        appName: {
            type: import("vue").PropType<string>;
            required: true;
        };
        enableContext: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableLocalStorage: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showTaskRunningBox: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        taskRunningText: {
            type: import("vue").PropType<string>;
            default: string;
        };
        enableFullscreenToggle: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        allowHistorySearch: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        announcementConfig: {
            type: import("vue").PropType<import("./types").AnnouncementConfig>;
        };
        customRequestConfig: {
            type: import("vue").PropType<import("./types").CustomRequestConfig>;
        };
        enableAutoSpeech: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        dateLocales: {
            type: import("vue").PropType<string | string[]>;
            default: string;
        };
        location: {
            type: import("vue").PropType<"left-top" | "right-top" | "left-bottom" | "right-bottom" | "left-center" | "right-center" | "top-center" | "bottom-center" | "center">;
            default: string;
        };
        customIconUrl: {
            type: import("vue").PropType<string>;
        };
    }>, {
        sendMessage: (message: string) => void;
        getChatState: () => {
            isLocked: boolean;
            hasMessages: boolean;
            currentMessageCount: number;
            isStreaming: boolean;
        };
        clearHistory: () => void;
        stopRequest: () => void;
        isStreaming: () => boolean;
        getUiHistory: () => {
            role: "user" | "assistant" | "error" | "wait" | "streaming";
            content: string;
            timestamp: number;
            image?: string | undefined;
            images?: string[] | undefined;
            customComponents?: Record<string, any> | undefined;
        }[];
        reloadUiHistory: () => Promise<{
            role: "user" | "assistant" | "error" | "wait" | "streaming";
            content: string;
            timestamp: number;
            image?: string | undefined;
            images?: string[] | undefined;
            customComponents?: Record<string, any> | undefined;
        }[]>;
        setUiHistory: (nextUiHistory: any[]) => void;
        openPanel: () => void;
        closePanel: () => boolean;
        toggleFullscreenMode: () => void;
        isFullscreenMode: () => boolean;
        isPanelVisible: () => boolean;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        title: {
            type: import("vue").PropType<string>;
            default: string;
        };
        url: {
            type: import("vue").PropType<string>;
            default: string;
        };
        size: {
            type: import("vue").PropType<import("./types").SizePreset>;
            default: string;
        };
        showHeader: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showCloseButton: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showClearButton: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showThemeToggle: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showFeedbackButton: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        welcomeConfig: {
            type: import("vue").PropType<import("./types").WelcomeConfig>;
        };
        presetTasks: {
            type: import("vue").PropType<import("./types").PresetTask[]>;
        };
        storageKey: {
            type: import("vue").PropType<string>;
            default: string;
        };
        domainName: {
            type: import("vue").PropType<string>;
            required: true;
        };
        maxHistoryCount: {
            type: import("vue").PropType<number>;
            default: number;
        };
        enableImageUpload: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableMultiImageUpload: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableVoiceInput: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableDeepThinking: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        customTools: {
            type: import("vue").PropType<import("./types").ChatInputCustomTool[]>;
            default: () => never[];
        };
        maxInputLength: {
            type: import("vue").PropType<number>;
        };
        supportedCustomContext: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        disableInput: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        customPlaceholder: {
            type: import("vue").PropType<string>;
            default: string;
        };
        options: {
            type: import("vue").PropType<Intl.DateTimeFormatOptions>;
            default: () => {
                year: string;
                month: string;
                day: string;
                hour: string;
                minute: string;
            };
        };
        assistantConfig: {
            type: import("vue").PropType<import("./types").AssistantConfig>;
        };
        enableInsertMessage: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showAvatar: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        alignUserMessagesRight: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        contextHistoryCount: {
            type: import("vue").PropType<number>;
            default: number;
        };
        unvalidateHistory: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableStreaming: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        callbacks: {
            type: import("vue").PropType<import("./types").ChatCallbacks>;
        };
        appName: {
            type: import("vue").PropType<string>;
            required: true;
        };
        enableContext: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableLocalStorage: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showTaskRunningBox: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        taskRunningText: {
            type: import("vue").PropType<string>;
            default: string;
        };
        enableFullscreenToggle: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        allowHistorySearch: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        announcementConfig: {
            type: import("vue").PropType<import("./types").AnnouncementConfig>;
        };
        customRequestConfig: {
            type: import("vue").PropType<import("./types").CustomRequestConfig>;
        };
        enableAutoSpeech: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        dateLocales: {
            type: import("vue").PropType<string | string[]>;
            default: string;
        };
        location: {
            type: import("vue").PropType<"left-top" | "right-top" | "left-bottom" | "right-bottom" | "left-center" | "right-center" | "top-center" | "bottom-center" | "center">;
            default: string;
        };
        customIconUrl: {
            type: import("vue").PropType<string>;
        };
    }>> & Readonly<{}>, {
        title: string;
        url: string;
        size: import("./types").SizePreset;
        showHeader: boolean;
        showCloseButton: boolean;
        showClearButton: boolean;
        showThemeToggle: boolean;
        showFeedbackButton: boolean;
        storageKey: string;
        maxHistoryCount: number;
        enableImageUpload: boolean;
        enableMultiImageUpload: boolean;
        enableVoiceInput: boolean;
        enableDeepThinking: boolean;
        customTools: import("./types").ChatInputCustomTool[];
        supportedCustomContext: boolean;
        disableInput: boolean;
        customPlaceholder: string;
        options: Intl.DateTimeFormatOptions;
        enableInsertMessage: boolean;
        showAvatar: boolean;
        alignUserMessagesRight: boolean;
        contextHistoryCount: number;
        unvalidateHistory: boolean;
        enableStreaming: boolean;
        enableContext: boolean;
        enableLocalStorage: boolean;
        showTaskRunningBox: boolean;
        taskRunningText: string;
        enableFullscreenToggle: boolean;
        allowHistorySearch: boolean;
        enableAutoSpeech: boolean;
        dateLocales: string | string[];
        location: "left-top" | "right-top" | "left-bottom" | "right-bottom" | "left-center" | "right-center" | "top-center" | "bottom-center" | "center";
    }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    ChatPanel: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        title: {
            type: import("vue").PropType<string>;
            default: string;
        };
        url: {
            type: import("vue").PropType<string>;
            required: true;
        };
        size: {
            type: import("vue").PropType<import("./types").SizePreset>;
            default: string;
        };
        showHeader: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showCloseButton: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showClearButton: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showThemeToggle: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showFeedbackButton: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showFullscreenButton: {
            type: import("vue").PropType<boolean>;
        };
        isFullscreenMode: {
            type: import("vue").PropType<boolean>;
        };
        welcomeConfig: {
            type: import("vue").PropType<import("./types").WelcomeConfig>;
        };
        presetTasks: {
            type: import("vue").PropType<import("./types").PresetTask[]>;
        };
        storageKey: {
            type: import("vue").PropType<string>;
            default: string;
        };
        domainName: {
            type: import("vue").PropType<string>;
            required: true;
        };
        maxHistoryCount: {
            type: import("vue").PropType<number>;
            default: number;
        };
        enableImageUpload: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableMultiImageUpload: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableVoiceInput: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableDeepThinking: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        customTools: {
            type: import("vue").PropType<import("./types").ChatInputCustomTool[]>;
            default: () => never[];
        };
        maxInputLength: {
            type: import("vue").PropType<number>;
        };
        supportedCustomContext: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        disableInput: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        customPlaceholder: {
            type: import("vue").PropType<string>;
            default: string;
        };
        options: {
            type: import("vue").PropType<Intl.DateTimeFormatOptions>;
            default: () => {
                year: string;
                month: string;
                day: string;
                hour: string;
                minute: string;
            };
        };
        assistantConfig: {
            type: import("vue").PropType<import("./types").AssistantConfig>;
        };
        locales: {
            type: import("vue").PropType<string | string[]>;
            default: string;
        };
        enableInsertMessage: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showAvatar: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        alignUserMessagesRight: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        contextHistoryCount: {
            type: import("vue").PropType<number>;
        };
        unvalidateHistory: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableStreaming: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        callbacks: {
            type: import("vue").PropType<import("./types").ChatCallbacks>;
        };
        appName: {
            type: import("vue").PropType<string>;
            required: true;
        };
        enableContext: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableLocalStorage: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showTaskRunningBox: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        taskRunningText: {
            type: import("vue").PropType<string>;
            default: string;
        };
        enableFullscreenToggle: {
            type: import("vue").PropType<boolean>;
        };
        allowHistorySearch: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        announcementConfig: {
            type: import("vue").PropType<import("./types").AnnouncementConfig>;
        };
        customRequestConfig: {
            type: import("vue").PropType<import("./types").CustomRequestConfig>;
        };
        enableAutoSpeech: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        __internalSuspendedBallMode: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
    }>, {
        scrollToBottom: () => void;
        forceScrollToBottom: (options?: {
            onSettled?: ((didReachBottom: boolean) => void) | undefined;
        } | undefined) => void;
        streamingScrollToBottom: () => void;
        handleRequestEnd: (content?: string | undefined) => void;
        handleMermaidInit: (content?: string | undefined) => void;
        getUiHistory: () => {
            role: "user" | "assistant" | "error" | "wait" | "streaming";
            content: string;
            timestamp: number;
            image?: string | undefined;
            images?: string[] | undefined;
            customComponents?: Record<string, any> | undefined;
        }[];
        reloadUiHistory: () => Promise<{
            role: "user" | "assistant" | "error" | "wait" | "streaming";
            content: string;
            timestamp: number;
            image?: string | undefined;
            images?: string[] | undefined;
            customComponents?: Record<string, any> | undefined;
        }[]>;
        setUiHistory: (nextUiHistory: import("./types").ChatMessage[]) => void;
        sendMessage: (message: string) => void;
        getChatState: () => {
            isLocked: boolean;
            hasMessages: boolean;
            currentMessageCount: number;
            isStreaming: boolean;
        };
        clearHistory: () => void;
        stopRequest: () => void;
        isStreaming: () => boolean;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        close: () => void;
        toggleFullscreen: () => void;
    }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        title: {
            type: import("vue").PropType<string>;
            default: string;
        };
        url: {
            type: import("vue").PropType<string>;
            required: true;
        };
        size: {
            type: import("vue").PropType<import("./types").SizePreset>;
            default: string;
        };
        showHeader: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showCloseButton: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showClearButton: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showThemeToggle: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showFeedbackButton: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showFullscreenButton: {
            type: import("vue").PropType<boolean>;
        };
        isFullscreenMode: {
            type: import("vue").PropType<boolean>;
        };
        welcomeConfig: {
            type: import("vue").PropType<import("./types").WelcomeConfig>;
        };
        presetTasks: {
            type: import("vue").PropType<import("./types").PresetTask[]>;
        };
        storageKey: {
            type: import("vue").PropType<string>;
            default: string;
        };
        domainName: {
            type: import("vue").PropType<string>;
            required: true;
        };
        maxHistoryCount: {
            type: import("vue").PropType<number>;
            default: number;
        };
        enableImageUpload: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableMultiImageUpload: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableVoiceInput: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableDeepThinking: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        customTools: {
            type: import("vue").PropType<import("./types").ChatInputCustomTool[]>;
            default: () => never[];
        };
        maxInputLength: {
            type: import("vue").PropType<number>;
        };
        supportedCustomContext: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        disableInput: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        customPlaceholder: {
            type: import("vue").PropType<string>;
            default: string;
        };
        options: {
            type: import("vue").PropType<Intl.DateTimeFormatOptions>;
            default: () => {
                year: string;
                month: string;
                day: string;
                hour: string;
                minute: string;
            };
        };
        assistantConfig: {
            type: import("vue").PropType<import("./types").AssistantConfig>;
        };
        locales: {
            type: import("vue").PropType<string | string[]>;
            default: string;
        };
        enableInsertMessage: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showAvatar: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        alignUserMessagesRight: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        contextHistoryCount: {
            type: import("vue").PropType<number>;
        };
        unvalidateHistory: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableStreaming: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        callbacks: {
            type: import("vue").PropType<import("./types").ChatCallbacks>;
        };
        appName: {
            type: import("vue").PropType<string>;
            required: true;
        };
        enableContext: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        enableLocalStorage: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        showTaskRunningBox: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        taskRunningText: {
            type: import("vue").PropType<string>;
            default: string;
        };
        enableFullscreenToggle: {
            type: import("vue").PropType<boolean>;
        };
        allowHistorySearch: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        announcementConfig: {
            type: import("vue").PropType<import("./types").AnnouncementConfig>;
        };
        customRequestConfig: {
            type: import("vue").PropType<import("./types").CustomRequestConfig>;
        };
        enableAutoSpeech: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
        __internalSuspendedBallMode: {
            type: import("vue").PropType<boolean>;
            default: boolean;
        };
    }>> & Readonly<{
        onClose?: (() => any) | undefined;
        onToggleFullscreen?: (() => any) | undefined;
    }>, {
        title: string;
        size: import("./types").SizePreset;
        showHeader: boolean;
        showCloseButton: boolean;
        showClearButton: boolean;
        showThemeToggle: boolean;
        showFeedbackButton: boolean;
        storageKey: string;
        maxHistoryCount: number;
        enableImageUpload: boolean;
        enableMultiImageUpload: boolean;
        enableVoiceInput: boolean;
        enableDeepThinking: boolean;
        customTools: import("./types").ChatInputCustomTool[];
        supportedCustomContext: boolean;
        disableInput: boolean;
        customPlaceholder: string;
        options: Intl.DateTimeFormatOptions;
        locales: string | string[];
        enableInsertMessage: boolean;
        showAvatar: boolean;
        alignUserMessagesRight: boolean;
        unvalidateHistory: boolean;
        enableStreaming: boolean;
        enableContext: boolean;
        enableLocalStorage: boolean;
        showTaskRunningBox: boolean;
        taskRunningText: string;
        allowHistorySearch: boolean;
        enableAutoSpeech: boolean;
        __internalSuspendedBallMode: boolean;
    }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
};
export default _default;
//# sourceMappingURL=index.d.ts.map