import { ElementBoundBox, ElementPositionBox, ElementScrollDimension } from '../../../types/ui.type';
import { BasePositionCalculationStrategy } from './base-position-calculation-strategy';
import { ElementAppenderShowConfig } from '../../ui/element-appender';
/**
 * calculate position by body container
 */
export declare class BodyPositionCalculationStrategy extends BasePositionCalculationStrategy {
  container: HTMLElement;
  showConfig: ElementAppenderShowConfig;
  /**
   * Get the position of the element in the container according to the target element and the placement
   * If give a translocation, it will apply the translocation to the result.
   * Note: If you use this method to calculate the position, you should make container as relative position at first.
   *
   * @returns {ElementPositionBox} A function that takes in a container, element, target, placement, and translocation and
   * returns an ElementPositionBox.
   */
  getPosition(): ElementPositionBox;
  /**
   * It returns the position of an element relative to its container and also includes the scroll height of container.
   *
   * @returns {ElementBoundBox} An object with the properties width, height, top, and left.
   */
  protected getTargetBoundBox(): ElementBoundBox;
  /**
   * "Get the width and height of an element."
   *
   * The function takes a single parameter, a container element, and returns an object with two
   * properties: width and height
   *
   * @returns {ElementScrollDimension} An object with two properties: width and height.
   */
  protected getElementScrollDimension(): ElementScrollDimension;
}
