import { LuzmoElement } from '../../utils/base'; import { ElementResolutionController } from '../../utils/reactive-controllers/element-resolution'; import { LuzmoOverlay } from './overlay'; import { LuzmoOverlayTimer } from './overlay-timer'; import type { OpenableElement, OverlayOptions, OverlayOptionsV1, OverlayState, OverlayTypes, Placement, TriggerInteractionsV1 } from './overlay-types'; import { PlacementController } from './placement-controller'; import { VirtualTrigger } from './virtual-trigger'; export declare const overlayTimer: LuzmoOverlayTimer; export declare const noop: () => void; /** * Apply a "transitionend" listener to an element that may not transition but * guarantee the callback will be fired either way. * * @param el {HTMLElement} - Target of the "transition" listeners. * @param action {Function} - Method to trigger the "transition". * @param cb {Function} - Callback to trigger when the "transition" has ended. */ export declare const guaranteedAllTransitionend: (el: HTMLElement, action: () => void, cb: () => void) => void; export declare function nextFrame(): Promise; /** * Abstract Overlay base class so that property tyings and imperative API * interfaces can be held separate from the actual class definition. */ export declare class LuzmoAbstractOverlay extends LuzmoElement { protected applyFocus(_targetOpenState: boolean, _focusEl: HTMLElement | null): void; get delayed(): boolean; set delayed(_delayed: boolean); dialogEl: HTMLDialogElement & { showPopover(): void; hidePopover(): void; }; get disabled(): boolean; set disabled(_disabled: boolean); dispose: () => void; protected get elementResolver(): ElementResolutionController; protected set elementResolver(controller: ElementResolutionController); protected _elementResolver: ElementResolutionController; protected ensureOnDOM(_targetOpenState: boolean): void; elements: OpenableElement[]; protected makeTransition(_targetOpenState: boolean): HTMLElement | null; protected manageDelay(_targetOpenState: boolean): void; protected manageDialogOpen(): void; protected managePopoverOpen(): void; protected managePosition(): void; protected offset: number | [number, number]; get open(): boolean; set open(_open: boolean); placement?: Placement; protected get placementController(): PlacementController; protected set placementController(controller: PlacementController); protected _placementController: PlacementController; receivesFocus: 'true' | 'false' | 'auto'; protected requestSlottable(): void; protected returnFocus(): void; get state(): OverlayState; set state(_state: OverlayState); protected _state: OverlayState; triggerElement: HTMLElement | VirtualTrigger | null; type: OverlayTypes; willPreventClose: boolean; manuallyKeepOpen(): void; static update(): void; /** * Overloaded imperative API entry point that allows for both the pre-0.37.0 * argument signature as well as the post-0.37.0 signature. This allows for * consumers to continue to leverage it as they had been in previous releases * while also surfacing the more feature-rich API that has been made available. */ static open(trigger: HTMLElement, interaction: TriggerInteractionsV1, content: HTMLElement, optionsV1: OverlayOptionsV1): Promise<() => void>; static open(content: HTMLElement, options?: OverlayOptions): Promise; static applyOptions(overlay: LuzmoAbstractOverlay, options: OverlayOptions): void; }