import { GenesisElement } from '@genesislcap/web-core';
/**
 * Floating chat bubble component that provides a draggable orb and dialog panel
 * for embedding an AI assistant without a full-page layout.
 *
 * @remarks
 * This component is optional — apps can use `foundation-ai-assistant` directly
 * in a layout panel instead, depending on their AI interaction flow.
 *
 * @beta
 */
export declare class AiChatBubble extends GenesisElement {
    title: string;
    imageSrc?: string;
    designSystemPrefix: string;
    /** @internal */
    dialogContent: HTMLElement[];
    /** @internal */
    tooltipMeasuredWidth: number;
    /** Current left position of the bubble orb (px from viewport left). @internal */
    bubbleLeft: number;
    /** Current top position of the bubble orb (px from viewport top). @internal */
    bubbleTop: number;
    /** Current left position of the dialog panel (px from viewport left). @internal */
    dialogLeft: number;
    /** Current top position of the dialog panel (px from viewport top). @internal */
    dialogTop: number;
    /** Current rendered width of the dialog panel (px). @internal */
    dialogWidth: number;
    /** Current rendered height of the dialog panel (px). @internal */
    dialogHeight: number;
    /** Whether the dialog panel is currently open. @internal */
    dialogOpen: boolean;
    /** Whether the bubble orb is currently hovered. @internal */
    hovered: boolean;
    /** @internal */
    bubbleEl?: HTMLElement;
    /** @internal */
    tooltipEl?: HTMLElement;
    /** @internal */
    dialogEl?: HTMLElement;
    private unsubBus?;
    private injectedCloseBtn?;
    private resizeObserver?;
    private dragging;
    private dragTarget;
    private startMouseX;
    private startMouseY;
    private startElemLeft;
    private startElemTop;
    private hasDragged;
    private latestMouseX;
    private latestMouseY;
    private rafHandle?;
    private closeAbort?;
    connectedCallback(): void;
    onBubbleMouseEnter(): void;
    onBubbleMouseLeave(): void;
    disconnectedCallback(): void;
    dialogOpenChanged(_: boolean, next: boolean): void;
    dialogContentChanged(_: HTMLElement[], next: HTMLElement[]): void;
    private injectCloseButton;
    onBubbleMouseDown(e: MouseEvent): void;
    onDialogHeaderMouseDown(e: CustomEvent<{
        clientX: number;
        clientY: number;
    }>): void;
    private readonly onCloseBtnClick;
    private cancelClose;
    private startCloseDialog;
    private onDocMouseMove;
    private applyDragFrame;
    private onDocMouseUp;
    onPopout(): void;
    onCloseDialog(): void;
    get tooltipStyle(): string;
}
//# sourceMappingURL=chat-bubble.d.ts.map