import { EventEmitter } from '../../stencil-public-runtime'; export type ModalSize = 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | 'full'; export type ModalPlacement = 'center' | 'top'; /** * @component BcmModal * @description A flexible modal dialog component built on the native HTML Dialog API. * Provides a powerful way to display content in a layer above the page with full keyboard and focus management. * * @slot - Main content area of the modal * @slot header - Custom header content (overrides header-text prop) * @slot helper - Custom helper text content (overrides helper-text prop) * @slot footer - Footer content for action buttons * * @part dialog - The native dialog element * @part container - The container wrapper for centering and scrolling * @part modal - The main modal box * @part header - The header section * @part header-content - The content wrapper inside header * @part title - The title heading element * @part helper-text - The helper text paragraph * @part close-button - The close button in header * @part content - The main content area * @part footer - The footer section * * @example * ```html * * *

Modal content goes here

*
* *
*
* * * *
Custom Header
*

Content here

*
* * *
*
* * * *

Full screen content

*
* * * Content * * ``` */ export declare class BcmModal { host: HTMLBcmModalElement; private dialogRef?; /** * Controls whether the modal is open or closed */ open: boolean; /** * The size of the modal * - 'small': 400px * - 'medium': 600px * - 'large': 800px * - 'xlarge': 1024px * - 'xxlarge': 1200px * - 'full': 100% width */ size: ModalSize; /** * The placement of the modal on the screen * - 'center': Centered vertically and horizontally * - 'top': Aligned to the top with 80px padding */ placement: ModalPlacement; /** * Controls backdrop behavior * - true: Shows backdrop, modal can be closed by clicking outside * - false: No backdrop * - 'static': Shows backdrop but prevents closing by clicking outside (triggers shake animation) */ backdrop: boolean | 'static'; /** * Makes the modal take full width of the viewport (max-width: 100%) */ fullWidth: boolean; /** * Makes the modal take the full screen (100vw x 100vh, no border radius) */ fullScreen: boolean; /** * Text to display in the modal header */ headerText?: string; /** * Helper text to display below the header title */ helperText?: string; /** * Hides the header section completely */ noHeader: boolean; /** * Hides the footer section completely */ noFooter: boolean; /** * Allows closing the modal by clicking on the backdrop */ closeOnBackdrop: boolean; /** * Allows closing the modal by pressing the Escape key */ closeOnEscape: boolean; isAnimating: boolean; shake: boolean; /** * Emitted after the modal has opened */ bcmOpen: EventEmitter; /** * Emitted after the modal has closed */ bcmClose: EventEmitter; /** * Emitted before the modal opens. Can be cancelled by calling event.preventDefault() */ bcmBeforeOpen: EventEmitter; /** * Emitted before the modal closes. Can be cancelled by calling event.preventDefault() */ bcmBeforeClose: EventEmitter; private modalClass; handleOpenChange(isOpen: boolean): Promise; handleClick(event: MouseEvent): void; handleKeyDown(event: KeyboardEvent): void; /** * Programmatically opens the modal */ show(): Promise; /** * Programmatically closes the modal */ hide(): Promise; /** * Toggles the modal open/closed state */ toggle(): Promise; private shakeModal; private handleBackdropClick; private handleDialogCancel; private getModalStyle; componentDidLoad(): void; disconnectedCallback(): void; render(): any; }