///
import { type Placement, type ReferenceType } from '@floating-ui/react-dom';
declare const SIDE_OPTIONS: readonly ["top", "right", "bottom", "left"];
declare const ALIGN_OPTIONS: readonly ["start", "center", "end"];
export type Side = (typeof SIDE_OPTIONS)[number];
export type Align = (typeof ALIGN_OPTIONS)[number];
export type PopperWidth = 'target' | React.CSSProperties['width'];
type Boundary = Element | null;
export type UsePopperProps = {
width?: PopperWidth;
side?: Side;
sideOffset?: number;
align?: Align;
alignOffset?: number;
sticky?: 'partial' | 'always';
avoidCollisions?: boolean;
hideWhenDetached?: boolean;
reference?: ReferenceType | null;
collisionBoundary?: Boundary | Boundary[];
collisionPadding?: number | Partial>;
updatePositionStrategy?: 'optimized' | 'always';
};
export declare function usePopper({ width, side, sideOffset, align, alignOffset, sticky, avoidCollisions, hideWhenDetached, reference, collisionBoundary, collisionPadding: collisionPaddingProp, updatePositionStrategy, }: UsePopperProps): {
placement: Placement;
strategy: import("@floating-ui/react-dom").Strategy;
middlewareData: import("@floating-ui/react-dom").MiddlewareData;
x: number;
y: number;
isPositioned: boolean;
update: () => void;
floatingStyles: import("react").CSSProperties;
refs: {
reference: import("react").MutableRefObject;
floating: import("react").MutableRefObject;
setReference: (node: ReferenceType | null) => void;
setFloating: (node: HTMLElement | null) => void;
};
elements: {
reference: ReferenceType | null;
floating: HTMLElement | null;
};
};
export declare function getSideAndAlignFromPlacement(placement: Placement): readonly ["bottom" | "left" | "right" | "top", "center" | "end" | "start"];
export {};
//# sourceMappingURL=usePopper.d.ts.map