import { PluginObject } from 'vue';
import { BackdropMode, PortalMixinImpl } from '../../mixins/portal/portal';
import { ModulVue } from '../../utils/vue/vue';
export declare enum MPopperPlacement {
    Top = "top",
    TopStart = "top-start",
    TopEnd = "top-end",
    Right = "right",
    RightStart = "right-start",
    RightEnd = "right-end",
    Bottom = "bottom",
    BottomStart = "bottom-start",
    BottomEnd = "bottom-end",
    Left = "left",
    LeftStart = "left-start",
    LeftEnd = "left-end"
}
export declare class MPopper extends ModulVue implements PortalMixinImpl {
    readonly placement: MPopperPlacement;
    readonly closeOnClickOutside: boolean;
    readonly focusManagement: boolean;
    readonly shadow: boolean;
    readonly padding: boolean;
    readonly paddingHeader: boolean;
    readonly paddingBody: boolean;
    readonly paddingFooter: boolean;
    readonly background: boolean;
    readonly width: string;
    readonly beforeEnter: (el: HTMLElement) => void;
    readonly enter: (el: HTMLElement, done: Function) => void;
    readonly afterEnter: (el: HTMLElement) => void;
    readonly enterCancelled: (el: HTMLElement) => void;
    readonly beforeLeave: (el: HTMLElement) => void;
    readonly leave: (el: HTMLElement, done: Function) => void;
    readonly afterLeave: (el: HTMLElement) => void;
    readonly leaveCancelled: (el: HTMLElement) => void;
    readonly boundariesElement: string;
    $refs: {
        popper: HTMLElement;
        body: HTMLElement;
    };
    private popper;
    defaultAnimOpen: boolean;
    internalOpen: boolean;
    isHidden: boolean;
    private observer;
    emitClickOutside(): void;
    emitAfterEnter(_el: HTMLElement): void;
    get popupBody(): HTMLElement;
    get defaultAnimActive(): boolean;
    handlesFocus(): boolean;
    getBackdropMode(): BackdropMode;
    getPortalElement(): HTMLElement;
    doCustomPropOpen(value: boolean, el: HTMLElement): boolean;
    updateReference(): void;
    update(): void;
    onBeforeEnter(el: HTMLElement): void;
    onEnter(el: HTMLElement, done: Function): void;
    onAfterEnter(el: HTMLElement): void;
    onEnterCancelled(el: HTMLElement): void;
    onBeforeLeave(el: HTMLElement): void;
    onLeave(el: HTMLElement, done: any): void;
    onAfterLeave(el: HTMLElement): void;
    onLeaveCancelled(el: HTMLElement): void;
    protected mounted(): void;
    protected beforeDestroy(): void;
    private setPopperMutationObserver;
    private onDocumentClick;
    private destroyPopper;
}
declare const PopperPlugin: PluginObject<any>;
export default PopperPlugin;
//# sourceMappingURL=popper.d.ts.map