import Vue, { PluginObject } from 'vue';
import { BackdropMode } from '../../mixins/portal/portal';
/**
 * Augment the typings of Vue.js
 */
declare module 'vue/types/vue' {
    interface Vue {
        $modul: Modul;
    }
}
export interface ModulPluginOptions {
    CSPNonce?: string;
}
export declare class Modul {
    private options?;
    htmlEl: HTMLElement;
    bodyEl: HTMLElement;
    event: import("vue/types/vue").CombinedVueInstance<Vue, object, object, object, Record<never, any>>;
    scrollPosition: number;
    stopScrollPosition: number;
    scrollDown: boolean;
    scrollUp: boolean;
    backdropElement: HTMLElement | undefined;
    windowZIndex: number;
    private windowStack;
    private windowStackMap;
    private lastScrollPosition;
    private doneScrollEvent;
    private doneResizeEvent;
    private internalScrollActive;
    constructor(options?: ModulPluginOptions | undefined);
    /**
     * @deprecated Don't use this function to emit events between two components
     */
    updateAfterResize(): void;
    pushElement(element: HTMLElement, backdropMode: BackdropMode, viewportIsSmall: boolean): string;
    popElement(stackId: string | undefined): void;
    peekElement(): string | undefined;
    private onClick;
    private onScroll;
    private onResize;
    private ensureBackdrop;
    private removeBackdrop;
    private set scrollActive(value);
    private get scrollActive();
    get CSPNonce(): string | undefined;
}
declare const ModulPlugin: PluginObject<any>;
export default ModulPlugin;
//# sourceMappingURL=modul.d.ts.map