import { EventEmitter } from '../../stencil.core';
import { OverlayPlacement } from '../../types/types';
/** @internal */
export declare class Overlay {
    private static openDelay;
    private static closeDelay;
    private bodyEl;
    private scrollParentEl;
    private isChildOverlay;
    private parentEl;
    private clickObserver;
    private _popper;
    private timerClose;
    element: HTMLElement;
    active: boolean;
    showing: boolean;
    /**
     * The strategy for dismissing the overlay
     * Options are: `"explicit"`and `"auto"`. Defaults to "explicit".
     */
    dismiss: 'auto' | 'explicit';
    /**
     * If false, the overlay will lock window scrolling when open
     */
    scrollable: boolean;
    /**
     * Allows for targeted handling of nested overlays
     */
    nested: boolean;
    /**
     * The offset in `"x, y"` form without px
     */
    offset: string;
    /**
     * The preferred placement
     */
    placement: OverlayPlacement;
    /**
     * If true, traps the focus inside the overlay. Making this opt-in for now, but may become the default.
     */
    trapFocus: boolean;
    /**
     * Fires before the overlay opens
     */
    anjWillOpen: EventEmitter<void>;
    /**
     * Fires after the open has completed
     */
    anjDidOpen: EventEmitter<void>;
    /**
     * Fires before the overlay dismisses
     */
    anjWillDismiss: EventEmitter<void>;
    /**
     * Fires after the dismiss has completed
     */
    anjDidDismiss: EventEmitter<void>;
    componentWillLoad(): void;
    disconnectedCallback(): void;
    onChildDismiss(event: CustomEvent): void;
    onKeyDown(event: KeyboardEvent): Promise<void>;
    onClick(event: MouseEvent): Promise<void>;
    /**
     * Display the overlay
     */
    open(target: HTMLElement): Promise<void>;
    /**
     * Hide the overlay
     */
    close(): Promise<void>;
    /**
     * Returns the popper instance
     */
    popper(): Promise<any>;
    private popperOptions;
    private determineChildOverlay;
    private getScrollParentEl;
    render(): any;
}
