declare const DefaultOptions: {
    placement: string;
    boundariesPadding: number;
    offset: number;
    preventOverflowOrder: string[];
    arrowOffset: number;
    appendArrow: boolean;
    scrollContainer?: HTMLElement;
};
type DataType = {
    styles: Record<string, string>;
    placement: string;
    originalPlacement: string;
    offsets: ReturnType<Popper["getOffsets"]> & {
        arrow?: Record<string, any>;
    };
    boundaries: ReturnType<Popper["getBoundaries"]>;
    arrowElem?: HTMLElement;
    flipped?: boolean;
};
export declare class Popper {
    private reference;
    private popper;
    private option;
    updateCallbacks: {
        add: (callback: (data: DataType) => void) => () => void;
        callbacks: ((data: DataType) => void)[];
        reset: () => void;
        remove: (callBack: (data: DataType) => void) => void;
    };
    constructor(reference: HTMLElement, popper: HTMLElement, options?: Partial<typeof DefaultOptions>);
    update(refreshZindex?: boolean): void;
    destroy(): void;
    private scrollTarget?;
    private updateHandler?;
    private setupEventListeners;
    private removeEventListeners;
    private get position();
    private getOffsets;
    private getBoundaries;
    private runModifiers;
    private arrowEl?;
    private modifiers;
}
export {};
