import { createPopper as defaultCreatePopper, type Options as PopperOptions, type VirtualElement, type State as PopperState, type Instance as PopperInstance } from '@popperjs/core';
import type { Styles } from '../common';
type Options = Partial<PopperOptions & {
    createPopper: typeof defaultCreatePopper;
}>;
type Attributes = {
    [key: string]: {
        [key: string]: string;
    };
};
type UsePopperResult = {
    state?: PopperState;
    styles: Styles;
    attributes: Attributes;
    update: PopperInstance['update'];
    forceUpdate: PopperInstance['forceUpdate'];
};
declare const usePopper: (referenceElement?: Element | VirtualElement, popperElement?: HTMLElement, options?: Options) => UsePopperResult;
export default usePopper;
