import { EventEmitter } from './event-emitter'; import { WidgetManager } from './widget-manager'; import { WebchatService } from '../services'; import { MixedObject } from '../types'; import { CustidStoreMode } from '../enums'; export declare enum ChatPosition { left = "left", right = "right" } export declare enum AppTheme { round = "round", tile = "tile" } export interface InitialElement { successor?: string | null; suppress?: boolean; } export interface AppOptions { id: string; locale?: string; position?: ChatPosition; theme?: AppTheme; isChatboxVisible?: boolean; isButtonVisible?: boolean; renderWaButton?: boolean; showTeaserOnce?: boolean; renderButton?: boolean; showFooter?: boolean; initialElement?: InitialElement; unreadCounter?: number; context?: MixedObject; direction?: 'rtl' | 'ltr'; extendedWidth?: boolean; bwWaButton?: boolean; baseCls?: string; showInIframe?: boolean; custidStoreMode?: CustidStoreMode; loadGaContext?: boolean; channelOverride?: string; leftCloseButton?: boolean; iconUrl?: string; } export declare enum ActionEventType { action = "action", message = "message", command = "command" } export declare enum ActionEventName { userReady = "user.ready", tabOpen = "tab.open", setTeaserText = "set.teaser.text", showChatbox = "show.chatbox", hideChatbox = "hide.chatbox", showWhatsApp = "show.whatsApp" } export interface ActionEvent { type: ActionEventType; name: string; payload: MixedObject; } export declare class App { private broadcast; private webchatService; private chatConfig; private destroyed; private ready; private csrfToken; private isTeaserVisible; private widgetManager; options: AppOptions; constructor(options: AppOptions); private init; private afterInit; private initWebchatService; private render; private afterRender; private bindEvents; private proceedActionEvent; private loadConfig; private applyConfig; getWebchatService(): WebchatService; getBroadcast(): EventEmitter; getWidgetManager(): WidgetManager; getContext(key: string): Promise; setContext(key: string, value: any): Promise; getConfig(): MixedObject; getClientConfig(): MixedObject; setInitialElement(initialElement: InitialElement): void; getInitialElement(): InitialElement; triggerElement(options: { successor: string; teaserButton?: boolean; showChatbox?: boolean; suppressInitialElement?: boolean; }): void; destroy(): void; isDestroyed(): boolean; isReady(): boolean; loadChat(): void; setActionButtons(buttons: MixedObject): void; setLocale(locale: string): void; }