import { EventEmitter } from "../../stencil-public-runtime"; import { SwirlDialogToggleEvent } from "../../utils"; export type SwirlModalVariant = "default" | "drawer"; export type SwirlModalSpacing = "0" | "2" | "4" | "8" | "12" | "16" | "20" | "24" | "32"; /** * @slot slot - Modal contents * @slot secondary-content - Secondary content * @slot header-tools - Used to display elements inside the sticky header, below the label * @slot custom-header - Optional custom header; should be used hidden label * @slot custom-footer - Optional custom footer; replaces the default footer with primary and secondary actions * @slot sidebar-content - Sidebar content; Only visible on viewports larger than tablet * @slot sidebar-footer - Optional custom footer below the Sidebar */ export declare class SwirlModal { el: HTMLElement; closable?: boolean; closeButtonLabel?: string; fullscreenEnableButtonLabel?: string; fullscreenDisableButtonLabel?: string; height?: string; hideCloseButton?: boolean; hideLabel?: boolean; label: string; maxHeight?: string; minHeight?: string; maxWidth?: string; padded?: boolean; primaryActionLabel?: string; secondaryActionLabel?: string; variant?: SwirlModalVariant; contentGap?: SwirlModalSpacing; hideSecondaryContent?: boolean; primaryContentMaxWidth?: string; secondaryContentMaxWidth?: string; primaryContentFlex?: string; secondaryContentFlex?: string; hideSecondaryContentBorders?: boolean; returnFocusTo?: HTMLElement | string; secondaryContentPadding?: SwirlModalSpacing; secondaryContentPaddingBlockEnd?: SwirlModalSpacing; secondaryContentPaddingBlockStart?: SwirlModalSpacing; secondaryContentPaddingInlineEnd?: SwirlModalSpacing; secondaryContentPaddingInlineStart?: SwirlModalSpacing; showFullscreenButton?: boolean; sidebarLabel?: string; sidebarPadded?: boolean; sidebarFooterPadded?: boolean; hideSidebarContent?: boolean; hasSidebarCloseButton?: boolean; sidebarCloseButtonLabel?: string; hideScrolledHeaderBorder?: boolean; toggleFullscreen: EventEmitter; modalClose: EventEmitter; modalOpen: EventEmitter; primaryAction: EventEmitter; requestModalClose: EventEmitter; secondaryAction: EventEmitter; sidebarClose: EventEmitter; toggleDialog: EventEmitter; opening: boolean; isFullscreen: boolean; isFullscreenTransitioning: boolean; closing: boolean; hasCustomHeader: boolean; hasCustomFooter: boolean; hasHeaderTools: boolean; hasSecondaryContent: boolean; scrollable: boolean; scrolled: boolean; scrolledDown: boolean; hasSidebarContent: boolean; hasSidebarFooter: boolean; sidebarScrolled: boolean; sidebarScrolledDown: boolean; sidebarScrollable: boolean; private modalEl; private mutationObserver; private scrollContainer; private sidebarScrollContainer; private temporaryReturnFocusTo; componentDidLoad(): void; disconnectedCallback(): void; onWindowResize(): void; /** * Open the modal. */ open(returnFocusTo?: HTMLElement | string): Promise; /** * Close the modal. Pass `true` to force close even if the modal is not closable. */ close(force?: boolean): Promise; setFullscreen(isFullscreen: boolean): Promise; getScrollContainer(): Promise; onKeyDown: (event: KeyboardEvent) => void; private onClose; onToggle: (event: ToggleEvent) => void; private onBackdropClick; private onCloseButtonClick; private onFullscreenButtonClick; private onSidebarCloseButtonClick; private onPrimaryAction; private onSecondaryAction; private updateCustomFooterStatus; private updateCustomHeaderStatus; private updateHeaderToolsStatus; private updateSecondaryContentStatus; private updateSidebarContentStatus; private updateSidebarFooterStatus; private determineScrollStatus; private determineMainScrollStatus; private determineSidebarScrollStatus; private handleAutoFocus; private lockBodyScroll; private setupMutationObserver; private unlockBodyScroll; private ensureOpening; private setDialogCustomProps; private customFocusReturn; render(): any; }