import { Placement } from '@floating-ui/dom'; import { LitElement, PropertyValues, TemplateResult, CSSResult } from 'lit'; declare global { interface HTMLElementTagNameMap { 'forge-ai-overlay': ForgeAiOverlayComponent; } interface HTMLElementEventMap { 'forge-ai-overlay-toggle': CustomEvent<{ open: boolean; newState: string; oldState: string; }>; } } export type OverlayPlacement = Placement; export type OverlayOffset = number | { mainAxis?: number; crossAxis?: number; alignmentAxis?: number; }; /** * @summary A low-level overlay component for internal use within AI components. * * @slot - The default slot for overlay content. */ export declare class ForgeAiOverlayComponent extends LitElement { static styles: CSSResult; /** * The anchor element to position the overlay relative to. */ anchor: Element | null; /** * The placement of the overlay relative to the anchor. */ placement: OverlayPlacement; /** * Whether the overlay should flip to the opposite side when there's no space. */ flip: boolean; /** * Whether the overlay should shift to stay in view. */ shift: boolean; /** * Whether the overlay is open. */ open: boolean; /** * The arrow element to position relative to the overlay. */ arrowElement: HTMLElement | null; /** * The offset of the overlay from the anchor element. * Can be a number (main axis offset) or an object with mainAxis, crossAxis, and alignmentAxis properties. */ offset: OverlayOffset | undefined; /** * The dismiss mode for the overlay. * - 'auto': Automatically closes on outside clicks and Escape key * - 'manual': Requires manual control to close */ dismissMode: 'auto' | 'manual'; private _overlayElement; private _cleanupAutoUpdate; disconnectedCallback(): void; updated(changedProperties: PropertyValues): void; private _handleOpenChange; private _showOverlay; private _hideOverlay; private _updatePosition; private _computePosition; private _roundByDPR; private _cleanup; private _onToggle; render(): TemplateResult; }