export declare type Position = 'top' | 'bottom' | 'left' | 'right'; export declare type ArrowPosition = 'end' | 'center' | 'start'; export declare type Point = { x: number; y: number; }; export declare type Size = { width: number; height: number; }; export declare type Overflow = { top: number; right: number; bottom: number; left: number; }; export declare type WindowState = { scroll: Point; size: Size; }; export declare const DISTANCE_BETWEEN_EDGE_AND_ARROW = 20; export default class PositioningUtils { static isLeftOrRight(position: Position): boolean; static isTopOrBottom(position: Position): boolean; static getWindowState(options?: { fixedScroll?: boolean; }): WindowState; static getElementCenter({ rect, windowState, }?: { rect?: ClientRect; windowState?: WindowState; }): Point; static getOffsetDueToAnchor({ position, arrowPosition, anchorSize, contentSize, }?: { position?: Position; arrowPosition?: ArrowPosition; anchorSize?: Size; contentSize?: Size; }): Point; static getOffsetDueToAnchorWithoutArrowPosition({ position, contentSize, anchorSize, }?: { position?: Position; anchorSize?: Size; contentSize?: Size; }): Point; static getExtraOffsetByArrowPosition({ position, contentSize, arrowPosition, }?: { position?: Position; arrowPosition?: ArrowPosition; contentSize?: Size; }): Point; static calculateOverflow({ offset, contentSize, anchorCenter, windowState, }?: { offset?: Point; contentSize?: Size; anchorCenter?: Point; windowState?: WindowState; }): Overflow; static adjustOffsetForOverflow({ overflow, offset, contentSize, anchorSize, position, }?: { overflow?: Overflow; offset?: Point; contentSize?: Size; anchorSize?: Size; position?: Position; }): Point; static getOverriddenPosition({ overflow, position, }: { overflow: Overflow; position: Position; }): Position | null; }