/** @internal */ export interface XCoordConfig { xMargin: number; elWidth: number; initialX?: number; containerRect: DOMRect; } /** @internal */ export interface YCoordConfig { yMargin: number; elHeight: number; initialY?: number; containerRect: DOMRect; } declare type Left = number; declare type Top = number; /** * Creates the `left` style value for an element that should be fixed to the * (outer) left of the container element. So the right bounds of the fixed * element will be equal to the left bounds of the container element (before the * xMargin is applied). * * @internal */ export declare function getLeftCoord({ xMargin, elWidth, initialX, containerRect, }: XCoordConfig): Left; /** * Creates the `left` style value for an element that should be fixed to the * inner-left of the container element. So the left bounds of both the container * and fixed elements will overlap (before the xMargin is applied) * * @internal */ export declare function getInnerLeftCoord({ xMargin, initialX, containerRect, }: XCoordConfig): Left; /** * Creates the `left` style value for an element that should be fixed to the * center of the container element. So the center point of the fixed element * should be the center point of the container element. * * Note: Unlike all the other horizontal positioning logic, the center position * does not use the xMargin. * * @internal */ export declare function getCenterXCoord({ elWidth, initialX, containerRect, }: XCoordConfig): Left; /** * Creates the `left` style value for an element that should be fixed to the * inner-right of the container element. So the right bounds for both the * container and fixed elements will overlap (before the xMargin is applied). * * @internal */ export declare function getInnerRightCoord({ xMargin, elWidth, initialX, containerRect, }: XCoordConfig): Left; /** * Creates the `left` style value for an element that should be fixed to the * (outer) right of the container element. So the left bounds of the fixed * element will overlap with the right bounds of the container element (before * the xMargin is applied). * * @internal */ export declare function getRightCoord({ xMargin, initialX, containerRect, }: XCoordConfig): Left; /** * Creates the `top` style value for an element that should be fixed above the * container element. So the bottom bounds of the fixed element will overlap * with the top bounds of the container element (before the yMargin is applied). * * @internal */ export declare function getAboveCoord({ yMargin, initialY, elHeight, containerRect, }: YCoordConfig): Top; /** * Creates the `top` style value for an element that should be fixed to the top * of the container element. So the top bounds for both the container and fixed * elements will overlap (before the yMargin is applied). * * @internal */ export declare function getTopCoord({ yMargin, initialY, containerRect, }: YCoordConfig): Top; /** * Creates the `top` style value for an element that should be fixed vertically * centered relative to the container element. So the vertical center point for * the fixed element should overlap the vertical center point of the container * element. * * Note: Unlike all the other vertical positioning logic, the center position * does not use the yMargin. * * @internal */ export declare function getCenterYCoord({ yMargin, elHeight, initialY, containerRect, }: YCoordConfig): Top; /** * Creates the `top` style value for an element that should be fixed to the * bottom of the container element. So the top bounds of the fixed element * should overlap the bottom bounds of the container element (before the yMargin * is applied). * * @internal */ export declare function getBottomCoord({ yMargin, initialY, elHeight, containerRect, }: YCoordConfig): Top; /** * Creates the `top` style value for an element that should be fixed to the * bottom of the container element. So the bottom bounds of both the container * and fixed elements should overlap (before the yMargin is applied). * * @internal */ export declare function getBelowCoord({ yMargin, initialY, containerRect, }: YCoordConfig): Top; export {};