import { EventEmitter } from '../../stencil-public-runtime'; type CloseEventTrigger = 'CLOSE_BUTTON' | 'ESCAPE_KEY' | 'BACKDROP'; export interface BeforeCloseEventDetail { trigger: CloseEventTrigger; } /** * @slot close-icon - The slot for the close button content. * @slot action - The slot for the footer content. * @part backdrop - The area displayed behind the dialog. * @slot heading - The heading displayed at the top of the dialog. * @part close-button - The close button displayed in the top right corner of the dialog. */ export declare class DxpModal { hostElement: HTMLDxpModalElement; /** (optional) Custom class */ customClass?: string; /** (optional) Sets the aria-label & title for the modal */ modalLabel?: string; /** (optional) Modal size */ size?: string; /** (optional) If `true`, the Modal is open. */ opened?: boolean; /** (optional) Transition duration */ duration?: number; /** (optional) Label for close button */ closeButtonLabel?: string; /** (optional) Alignment of action buttons */ alignActions?: 'right' | 'left'; /** (optional) Override modal popup placement */ placement: 'top' | 'bottom' | 'left' | 'right' | 'overlay' | 'center'; /** What actually triggers opening/closing the modal */ isOpen: boolean; /** Check whether there are actions slots, style accordingly */ hasActionsSlot: boolean; /** Check whether there's content in the body, style accordingly */ hasBody: boolean; /** Useful for toggling scroll-specific styles */ hasScroll: boolean; /** Fires when the modal has been opened */ archerOpen: EventEmitter; /** Fires on every close attempt. Calling `event.preventDefault()` will prevent the modal from closing */ archerBeforeClose: EventEmitter; /** Fires when the modal has been closed */ archerClose: EventEmitter; private closeButton; private modalContainer; private modalWindow; private modalBody; private focusableElements; private resizeObserver?; /** Holds onto the current view's scroll position */ private scrollPosition; /** Holds onto the previous overflow style for document.body */ private cachedBodyOverflow; private cachedBodyPosition; private cachedBodyTop; private cachedHtmlScrollBehavior; handleKeypress(event: KeyboardEvent): void; connectedCallback(): void; private setDocumentScrollTop; /** * Set `hasActionsSlot` and `hasBody`. */ componentWillRender(): void; private emitBeforeClose; componentDidLoad(): void; private setHasScroll; private getFirstFocusableElement; private getLastFocusableElement; private handleTopFocus; private handleBottomFocus; private attemptFocus; openedChanged(newValue: boolean): void; private open; private lockBodyScroll; private close; private enableBodyScroll; private getCssClassMap; private setPlacement; render(): any; disconnectedCallback(): void; } export {};