import { LitElement, PropertyValues, TemplateResult, CSSResult } from 'lit'; export type AiModalSizeStrategy = 'auto' | 'fixed'; declare global { interface HTMLElementTagNameMap { 'forge-ai-modal': AiModalComponent; } interface HTMLElementEventMap { 'forge-ai-modal-open': CustomEvent; 'forge-ai-modal-close': CustomEvent<{ reason: 'backdrop' | 'escape' | 'programmatic'; }>; 'forge-ai-modal-fullscreen-change': CustomEvent<{ isFullscreen: boolean; }>; } } /** * @tag forge-ai-modal * * @slot - Default slot for modal content * * @event {CustomEvent} forge-ai-modal-open - Fired when the modal is opened * @event {CustomEvent<{ reason: 'backdrop' | 'escape' | 'programmatic' }>} forge-ai-modal-close - Fired when the modal is closed. Detail includes reason for closing. * @event {CustomEvent<{ isFullscreen: boolean }>} forge-ai-modal-fullscreen-change - Fired when the fullscreen state changes * * @cssproperty --forge-ai-modal-width - Width of the modal in non-fullscreen mode * @cssproperty --forge-ai-modal-height - Height of the modal in non-fullscreen mode * * @state fullscreen - The modal is in fullscreen mode */ export declare class AiModalComponent extends LitElement { #private; static readonly styles: CSSResult; private _dialog; /** * Controls whether the modal is open or closed. */ open: boolean; /** * Controls whether the modal is displayed in fullscreen mode. * When not explicitly set, this will be automatically determined based on viewport size. */ fullscreen?: boolean; /** * Controls the modal sizing strategy. * - 'auto' (default): Automatically switches to fullscreen on viewports < 768px * - 'fixed': Maintains defined size regardless of viewport, never auto-fullscreens */ sizeStrategy: AiModalSizeStrategy; private _autoFullscreen; constructor(); render(): TemplateResult; connectedCallback(): void; disconnectedCallback(): void; updated(changedProperties: PropertyValues): void; /** * Shows the modal dialog. */ show(): void; /** * Closes the modal dialog. */ close(): void; }