import * as React from 'react';
import { Placement, Instance } from '@popperjs/core';
export declare const getOppositePosition: (position: "bottom" | "top" | "left" | "right") => string;
export declare function getArrowStyles(placement: Placement, arrowSize: number): React.CSSProperties;
export interface UsePopperProps {
    gutter?: number;
    placement?: Placement;
    offset?: number;
    preventOverflow?: boolean;
    fixed?: boolean;
    forceUpdate?: boolean;
    flip?: boolean;
    arrowSize?: number;
    eventsEnabled?: boolean;
}
export declare function usePopper(props: UsePopperProps): {
    popperInstance: Instance | null;
    reference: {
        ref: React.RefObject<HTMLButtonElement>;
    };
    popper: {
        ref: React.RefObject<HTMLDivElement>;
        style: React.CSSProperties;
    };
    arrow: {
        ref: React.RefObject<HTMLDivElement>;
        style: React.CSSProperties;
    };
    update: () => boolean;
    placement: Placement;
    place: React.Dispatch<React.SetStateAction<Placement>>;
};
export declare type UsePopperReturn = ReturnType<typeof usePopper>;
