import type { Middleware, MiddlewareData, Placement } from '@floating-ui/react'; /** Per-side padding, popper.js v1 shape */ export interface PopperPadding { top?: number; bottom?: number; left?: number; right?: number; } /** Base options shared by all modifiers, popper.js v1 shape */ export interface PopperModifierOptions { /** Whether the modifier is applied */ enabled?: boolean; } /** Modifier configuration, popper.js v1 shape, mapped internally to `@floating-ui/react` middleware */ export interface PopperModifiers { /** Flip the popper to the opposite side when it overflows its boundary */ flip?: PopperModifierOptions & { padding?: number | PopperPadding; boundariesElement?: string | Element; behavior?: string | string[]; }; /** Skidding and distance offsets in popper.js v1 `", "` format */ offset?: PopperModifierOptions & { offset?: number | string; }; /** Keep the popper inside its overflow boundary */ preventOverflow?: PopperModifierOptions & { padding?: number | PopperPadding; boundariesElement?: string | Element; escapeWithReference?: boolean; priority?: string[]; }; /** Hide the popper when its reference is out of boundaries */ hide?: PopperModifierOptions; } /** Callback invoked on popper lifecycle events */ export type PopperLifecycleCallback = (data: never) => void; /** Positioning options, popper.js v1 shape, mapped internally to `@floating-ui/react` */ export interface PopperOptions { /** Modifier configuration */ modifiers?: PopperModifiers; /** Called once the popper has been created and positioned */ onCreate?: PopperLifecycleCallback; /** Called on each position update after creation */ onUpdate?: PopperLifecycleCallback; /** * Position the popper relative to the viewport (`fixed`) instead of its * nearest positioned ancestor (`absolute`). `true` escapes a clipping or * scrolling ancestor (e.g. an `overflow: hidden` container) that `absolute` * positioning cannot. popper.js v1 shape. */ positionFixed?: boolean; } export declare const resolveStrategy: (popperOptions: PopperOptions) => "absolute" | "fixed"; export declare const getPopperOptions: (popperOptions: PopperOptions, isInsideModal?: boolean) => PopperOptions; export declare const createMiddleware: (options: PopperOptions) => Middleware[]; export declare const getParityAttributes: (resolvedPlacement: Placement, middlewareData: MiddlewareData) => Record; //# sourceMappingURL=popper-options.d.ts.map