import { EventEmitter } from "../../stencil-public-runtime";
import { LiveAgentProviderType } from "../../utils/liveagents/liveagent-factory-services";
import { KeyboardShortcut } from "./keyboard-shortcuts-dialog";
declare global {
    interface Window {
        grecaptcha: {
            ready(callback: () => void): void;
            execute(siteKey: string, options: {
                action: string;
            }): Promise<string>;
        };
    }
}
export declare class Ai12zBot {
    private cdnPath;
    private surveyCDNPath;
    private styles;
    private liveAgentEventHandler;
    private assetLoader;
    private customStyle;
    private customJS;
    private timer;
    private inputEl;
    private dataOverrideFunction;
    private plusIconRef;
    private socket;
    private liveAgentRef;
    private ignoreChunks;
    private unreadCount;
    liveAgentButtonText: string;
    isLiveAgentEnabled: boolean;
    isTypingIndicatorVisible: boolean;
    el: HTMLElement;
    dataKey: string;
    dataMode: string;
    configId: string;
    dataAttributes: any;
    excludeTags: Array<string>;
    includeTags: Array<string>;
    botSettings: any;
    canRender: boolean;
    voiceType: string;
    voice: string;
    showSubmit: boolean;
    hideAllButtons: boolean;
    showMenu: boolean;
    isProse: boolean;
    isLiveAgent: boolean;
    isConnectingLiveAgent: boolean;
    showWelcomeScreen: boolean;
    showHistory: boolean;
    conversationId: string;
    surveyDomId: string;
    searchResults: any;
    buttons: Array<{
        id: string;
        label: string;
    }>;
    currentDomId: string;
    messages: {
        text: string;
        isUser: boolean;
        id: string;
        timestamp: string;
        isLoading: boolean;
        images?: any[];
        conversationId: string;
        formModel?: any;
        surveyDomId?: string;
        controlType?: string;
        thumbsId?: string;
        insightId?: string;
        sender?: any;
        itemComponent?: any;
        showIcon?: boolean;
        isHide?: boolean;
        type?: string;
    }[];
    questionCounter: number;
    visitorID: string;
    timestamp: string;
    rowCount: number;
    isBot: boolean;
    conversationHistory: any[];
    query: string;
    scriptArray: any[];
    imagesBase64List: string[];
    focusedIndex: number;
    isAnimated: boolean;
    isMinimized: boolean;
    isStreaming: boolean;
    showErrorMessage: boolean;
    errorMessage: string;
    emptyMessageError: boolean;
    isOpened: boolean;
    isContent: boolean;
    isExpanded: boolean;
    isToggled: boolean;
    showPrivacy: boolean;
    isRendered: boolean;
    showShortcutsDialog: boolean;
    showLiveAgentEndDialog: boolean;
    liveAgentSessionId: string;
    liveAgentConversationId: string;
    liveAgentProviderName: LiveAgentProviderType;
    liveAgentListenersRegistered: boolean;
    shortcuts: KeyboardShortcut[];
    announceMessage: string;
    liveAgentDirective: boolean | Object;
    private imageUploaderRef;
    private messageRefs;
    messageSent: EventEmitter;
    messageReceived: EventEmitter;
    close: EventEmitter;
    open: EventEmitter;
    minimize: EventEmitter;
    errored: EventEmitter;
    formSubmitted: EventEmitter<any>;
    isElementAvailable: EventEmitter<boolean>;
    private get mainObject();
    handleKeyDown(ev: KeyboardEvent): void;
    private isInputFocused;
    private handleNewConversation;
    buttonClickHandler(event: CustomEvent): void;
    sendQueryToBotHandler(event: CustomEvent): void;
    deleteChatHistoryHandler(event: CustomEvent): void;
    chatClickHandler(event: CustomEvent): void;
    openChatHandler(_event: CustomEvent): void;
    formSubmittedHandler(event: CustomEvent): void;
    sendMessage(message: string, displayText?: string, options?: {
        isHide?: boolean;
        isLiveChatEnded?: boolean;
    }): Promise<void>;
    sendQuery(query: string): Promise<void>;
    sendJSON(jsonData: Object, displayText: string): Promise<void>;
    openBot(expanded?: boolean): Promise<void>;
    action(type: any, options?: any): Promise<void>;
    setProcessDataOverride(overrideFunction: (data: any) => Promise<any>): Promise<void>;
    configureSettings(settings: Record<string, any>): Promise<void>;
    connectedCallback(): void;
    componentWillLoad(): Promise<void>;
    onDataKeyChange(_v: string): void;
    onDataModeChange(_v: string): void;
    private hydrateStateFromStorage;
    private recoverLiveAgentSession;
    componentDidLoad(): void;
    private hydrateMessagesFromState;
    disconnectedCallback(): void;
    handlePaste: (event: ClipboardEvent) => void;
    handleClickOutside(event: MouseEvent): void;
    private initializeAssetLoader;
    checkHistory: () => void;
    processDataOverride(data: any): Promise<any>;
    /**
     * Announce a message to screen readers
     * @param message The message to announce
     */
    private announce;
    openChat(expanded?: boolean): void;
    minimizeChat(): void;
    adjustHeight(): void;
    configBot(): Promise<void>;
    checkCustomSlot(): void;
    handleSocketResponse(): void;
    hideSpinner(chatData: any): Promise<unknown>;
    processTemplateData(chatData: any, data: any): Promise<void>;
    renderTemplateData(chatData: any): Promise<void>;
    initializeScript: (id: string) => Promise<void>;
    processChatData(chatData: any, data: any): Promise<void>;
    handleBotMessages(): void;
    updateConversations(finalHtml: any, data: any): void;
    checkHighlightcode(highlightcodeId?: string): void;
    renderSurvey: (chat: any) => Promise<void>;
    private handleSurveyCompletionRender;
    addEventListeners(msgId: any): void;
    socketConnection(): Promise<void>;
    invokeSocket(): void;
    handleMessage: (data: any, aiMessageId: any) => void;
    getConversationHistory(): any;
    loadConversation(): void;
    startTimer(): void;
    updateScreenSize: () => void;
    stopResponse(): void;
    handleSend: (eleValue: string, options?: {
        isHide?: boolean;
        isLiveChatEnded?: boolean;
    }) => Promise<void>;
    scrollToBottom(): void;
    checkLiveAgentMode(): void;
    private openEndLiveAgentDialog;
    private closeEndLiveAgentDialog;
    private handleLiveAgentToolbarAction;
    private confirmEndLiveAgent;
    disconnectLiveChat(): void;
    private agentMessageCreated;
    addEventMessage: (_message: string) => HTMLElement | null;
    private removeFindingAgentPlaceholder;
    findingAgent: () => void;
    private handleTypingStarted;
    private handleTypingStopped;
    private handleAgentError;
    private handleAgentConversationEnded;
    agentEventHandler: (event: any) => void;
    private handleAgentSessionCreated;
    private handleAgentSessionInfo;
    private registerLiveAgentListeners;
    private clearEvents;
    handleAgentUnavailable: () => void;
    connectLiveChat(): Promise<void>;
    toggleBot: (_e: any) => void;
    menuClick: (e: any) => void;
    handleMessageKeyNav(e: KeyboardEvent, index: number): void;
    updateBotState(): Promise<void>;
    skipTo(id: string): void;
    render(): any;
}
