import "intersection-observer"; import type { PositioningOptions } from "./positioning-options.interface"; /** * This class follows a singleton pattern where you can create an instance by calling * `new PositioningService()` if you wish, but all instance methods pass through to * static methods, so there's really only one set of elements being positioned that's * shared between all instances and static usages of PositioningService. */ export declare class PositioningService { static elements: Map; private static registeredScrollParents; private static events; private static viewportObserver; static on(eventName: any, handler: any): void; static off(eventName: any, handler: any): void; static once(eventName: any, handler: any): void; static checkCollisions(element: HTMLElement, otherElements?: HTMLElement[]): void; /** * Returns `true` if the element is currently being positioned by the service * and `false` otherwise. */ static isPositioned(element: HTMLElement): boolean; /** * Returns the options currently beinng used for positioning the element, * if it is indeed being positioned by the service. */ static getPositioningOptions(element: HTMLElement): PositioningOptions | null; /** PositioningService will start controlling the position of the given element. */ static position(element: HTMLElement, options?: PositioningOptions): void; /** PositioningService will stop controlling the position of the given element. */ static release(element: HTMLElement): void; static releaseAll(): void; /** PositioningService will refresh the positioning of the given element */ static refresh(element: HTMLElement): void; static refreshAll(): void; /** Update the positioning options of a currently positioned element */ static reposition(element: HTMLElement, newOptions: PositioningOptions): void; private static onViewportIntersection; private static onElementIntersection; private static getRootBounds; private static clearStyles; private static fixElementPosition; private static update; on(eventName: any, handler: any): void; off(eventName: any, handler: any): void; once(eventName: any, handler: any): void; isPositioned(element: HTMLElement): boolean; getPositioningOptions(element: HTMLElement): PositioningOptions | null; position(element: HTMLElement, options?: PositioningOptions): void; release(element: HTMLElement): void; releaseAll(): void; refresh(element: HTMLElement): void; refreshAll(): void; reposition(element: HTMLElement, newOptions: PositioningOptions): void; }