/** * Origin on the X axis. */ export declare enum OriginX { LEFT = "left", CENTER = "center", RIGHT = "right" } /** * Origin on the Y axis. */ export declare enum OriginY { TOP = "top", CENTER = "center", BOTTOM = "bottom" } /** * A strategy for how to position an element. * I combines a direction and an origin for the X and Y axis. */ export interface IPositionStrategy { transformOriginX: OriginX; transformOriginY: OriginY; anchorOriginX: OriginX; anchorOriginY: OriginY; } /** * The position for an anchor. */ export interface IAnchorPosition { left: number; top: number; } /** * Transform origin. */ export interface ITransformOrigin { x: string | number; y: string | number; } /** * Computes the popover position. * @param anchorOriginX * @param anchorOriginY * @param left * @param top * @param width * @param height * @param anchorRect */ export declare function computeAnchorPosition({ anchorOriginX, anchorOriginY }: IPositionStrategy, { left, top, width, height }: { left: number; top: number; height?: number; width?: number; }): IAnchorPosition; /** * Computes the transform origin. * @param transformOriginX * @param transformOriginY */ export declare function computeTransformOrigin({ transformOriginX, transformOriginY }: IPositionStrategy): ITransformOrigin; /** * Determines whether two strategies are equal. * @param strategyA * @param strategyB */ export declare function areStrategiesEqual(strategyA: IPositionStrategy, strategyB: IPositionStrategy): boolean; /** * Computes the max dimensions of the container. * @param transformOriginX * @param transformOriginY * @param left * @param top */ export declare function computeMaxDimensions({ transformOriginX, transformOriginY }: IPositionStrategy, { left, top }: IAnchorPosition): { maxWidth: number; maxHeight: number; }; /** * Computes a fallback strategy. * @param transformOriginX * @param transformOriginY * @param anchorOriginX * @param anchorOriginY * @param top * @param left * @param containerRect */ export declare function computeFallbackStrategy({ transformOriginX, transformOriginY, anchorOriginX, anchorOriginY }: IPositionStrategy, { top, left }: IAnchorPosition, containerRect: ClientRect | DOMRect): IPositionStrategy;