import { WidgetType, type Config } from '@brainfish-ai/widgets-common'; /** * Handles all DOM manipulation for widgets * Single responsibility: Manage DOM elements and their states */ export declare class WidgetDOMController { private widgetType; private button; private icon; private closeCallback; constructor(widgetType: WidgetType); setCloseCallback(callback: () => void): void; get containerClass(): string; get container(): HTMLDivElement | null; get iframe(): HTMLIFrameElement | null; get backdrop(): HTMLElement | null; setElements(button?: HTMLElement, icon?: HTMLElement): void; openWidget(options?: { newConversation?: boolean; contextualQuestion?: string; position?: string; }): void; focusNextElement(): void; closeWidget(): void; private updateButtonForOpen; private updateButtonForClose; showTriggerButton(): void; hideTriggerButton(): void; resizeContainer(height: number): void; private isMobile; setupButtonClickListener(callback: () => void): void; /** * Check if widget DOM exists for a given widget key and config * Used to verify widget initialization after route changes */ static isWidgetDOMExisting(widgetKey: string, config: Config): boolean; }