import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
import { PopupComponentInterface } from './variants';
import { LogInstance, Loggable } from '../../utils/log';
export declare class Popup implements ComponentInterface, PopupComponentInterface, Loggable {
    private popupId;
    private isClickedOutsideOnMouseDown;
    private isClickedOutsideOnMouseUp;
    private popoverVariantRenderer;
    private fullscreenVariantRenderer;
    private drawerVariantRenderer;
    private lastVariant;
    private lastFocus?;
    private lastVariantRenderer?;
    el: HTMLElement;
    containerEl: HTMLDivElement | undefined;
    contentEl: HTMLDivElement | undefined;
    backdropEl: HTMLDivElement | undefined;
    arrowEl: HTMLDivElement | undefined;
    activeClosable: boolean;
    activeBackdropDismiss: boolean;
    activeVariant: BalProps.BalPopupVariant;
    trigger?: Element;
    lastTrigger?: Element;
    minContainerWidth: number;
    log: LogInstance;
    createLogger(log: LogInstance): void;
    label: string;
    reference?: string;
    variant: BalProps.BalPopupVariant;
    protected variantChanged(newVariant: BalProps.BalPopupVariant, oldVariant: BalProps.BalPopupVariant): Promise<void>;
    placement: BalProps.BalPopupPlacement;
    arrow: boolean;
    backdrop: boolean;
    offset: number;
    closable: boolean;
    backdropDismiss: boolean;
    active: boolean;
    protected activeChanged(newActive: boolean, oldActive: boolean): Promise<void>;
    presented: boolean;
    private initialActive;
    contentWidth?: number;
    contentWidthChanged(newValue?: number, oldValue?: number): void;
    demo: boolean;
    balChange: EventEmitter<BalEvents.BalPopupChangeDetail>;
    balWillAnimate: EventEmitter<BalEvents.BalPopupWillAnimateDetail>;
    balDidAnimate: EventEmitter<BalEvents.BalPopupDidAnimateDetail>;
    componentDidLoad(): void;
    private debouncedGlobalClick;
    listenOnGlobalClick(ev: MouseEvent): Promise<void>;
    listenOnKeyDown(ev: KeyboardEvent): Promise<void>;
    listenOnMouseDown(ev: MouseEvent): Promise<void>;
    listenOnMouseUp(ev: MouseEvent): Promise<void>;
    listenOnComponentClick(): Promise<void>;
    present(): Promise<void>;
    dismiss(): Promise<void>;
    toggle(): Promise<void>;
    setMinWidth(value: number): Promise<void>;
    _emitChange(): Promise<void>;
    _present(): Promise<boolean>;
    _dismiss(): Promise<boolean>;
    private getVariantRenderer;
    getValue(trigger: Element | HTMLElement, attributeName: string, componentValue: any): any;
    getNumberValue(trigger: Element | HTMLElement, attributeName: string, componentValue: number): number;
    getBooleanValue(trigger: Element | HTMLElement, attributeName: string, componentValue: boolean): boolean;
    private notifyGlobalClick;
    private resetAllVariants;
    private dismissAllOtherPopups;
    private focusFirstDescendant;
    private onBackdropClick;
    private onCloseClick;
    render(): any;
}
