import type { Placement, ModifierPhases } from "./enums"; import type { PopperOffsetsModifier } from "./modifiers/popperOffsets"; import type { FlipModifier } from "./modifiers/flip"; import type { HideModifier } from "./modifiers/hide"; import type { OffsetModifier } from "./modifiers/offset"; import type { EventListenersModifier } from "./modifiers/eventListeners"; import type { ComputeStylesModifier } from "./modifiers/computeStyles"; import type { ArrowModifier } from "./modifiers/arrow"; import type { PreventOverflowModifier } from "./modifiers/preventOverflow"; import type { ApplyStylesModifier } from "./modifiers/applyStyles"; export declare type Obj = { [key: string]: any; }; export declare type VisualViewport = EventTarget & { width: number; height: number; offsetLeft: number; offsetTop: number; scale: number; }; export declare type Window = { innerHeight: number; offsetHeight: number; innerWidth: number; offsetWidth: number; pageXOffset: number; pageYOffset: number; getComputedStyle: typeof getComputedStyle; addEventListener(type: any, listener: any, optionsOrUseCapture?: any): void; removeEventListener(type: any, listener: any, optionsOrUseCapture?: any): void; Element: Element; HTMLElement: HTMLElement; Node: Node; toString(): "[object Window]"; devicePixelRatio: number; visualViewport?: VisualViewport; ShadowRoot: ShadowRoot; }; export declare type Rect = { width: number; height: number; x: number; y: number; }; export declare type Offsets = { y: number; x: number; }; export declare type PositioningStrategy = "absolute" | "fixed"; export declare type StateRects = { reference: Rect; popper: Rect; }; export declare type StateOffsets = { popper: Offsets; arrow?: Offsets; }; declare type OffsetData = { [key in Placement]?: Offsets; }; export declare type State = { elements: { reference: Element | VirtualElement; popper: HTMLElement; arrow?: HTMLElement; }; options: OptionsGeneric; placement: Placement; strategy: PositioningStrategy; orderedModifiers: Array>; rects: StateRects; scrollParents: { reference: Array; popper: Array; }; styles: { [key: string]: Partial; }; attributes: { [key: string]: { [key: string]: string | boolean; }; }; modifiersData: { arrow?: { x?: number; y?: number; centerOffset: number; }; hide?: { isReferenceHidden: boolean; hasPopperEscaped: boolean; referenceClippingOffsets: SideObject; popperEscapeOffsets: SideObject; }; offset?: OffsetData; preventOverflow?: Offsets; popperOffsets?: Offsets; [key: string]: any; }; reset: boolean; }; declare type SetAction = S | ((prev: S) => S); export declare type Instance = { state: State; destroy: () => void; forceUpdate: () => void; update: () => Promise>; setOptions: (setOptionsAction: SetAction>>) => Promise>; }; export declare type ModifierArguments = { state: State; instance: Instance; options: Partial; name: string; }; export declare type Modifier = { name: Name; enabled: boolean; phase: ModifierPhases; requires?: Array; requiresIfExists?: Array; fn: (arg0: ModifierArguments) => State | void; effect?: (arg0: ModifierArguments) => (() => void) | void; options?: Partial; data?: Obj; }; export declare type StrictModifiers = Partial | Partial | Partial | Partial | Partial | Partial | Partial | Partial | Partial; export declare type EventListeners = { scroll: boolean; resize: boolean; }; export declare type Options = { placement: Placement; modifiers: Array>>; strategy: PositioningStrategy; onFirstUpdate?: (arg0: Partial) => void; }; export declare type OptionsGeneric = { placement: Placement; modifiers: Array; strategy: PositioningStrategy; onFirstUpdate?: (arg0: Partial) => void; }; export declare type UpdateCallback = (arg0: State) => void; export declare type ClientRectObject = { x: number; y: number; top: number; left: number; right: number; bottom: number; width: number; height: number; }; export declare type SideObject = { top: number; left: number; right: number; bottom: number; }; export declare type Padding = number | Partial; export declare type VirtualElement = { getBoundingClientRect: () => ClientRect | DOMRect; contextElement?: Element; }; export {};