/** Horizontal dimension of a connection point on the perimeter of the origin or overlay element. */
export declare type HorizontalConnectionPos = 'left' | 'center' | 'right';
/** Vertical dimension of a connection point on the perimeter of the origin or overlay element. */
export declare type VerticalConnectionPos = 'top' | 'center' | 'bottom';
/** all case of Placement*/
export declare type Placement = 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom';
export interface ConnectionPosition {
    horizontal: HorizontalConnectionPos;
    vertical: VerticalConnectionPos;
}
export declare class ConnectionPositionPair {
    offsetX?: number | undefined;
    offsetY?: number | undefined;
    /** X-axis attachment point for connected overlay origin. Can be 'left', 'center', or 'right'. */
    targetX: HorizontalConnectionPos;
    /** Y-axis attachment point for connected overlay origin. Can be 'top', 'center', or 'bottom'. */
    targetY: VerticalConnectionPos;
    /** X-axis attachment point for connected overlay. Can be 'left', 'center', or 'right'. */
    overlayX: HorizontalConnectionPos;
    /** Y-axis attachment point for connected overlay. Can be 'top', 'center', or 'bottom'. */
    overlayY: VerticalConnectionPos;
    constructor(target: ConnectionPosition, overlay: ConnectionPosition, offsetX?: number | undefined, offsetY?: number | undefined);
}
/**
 * A simple (x, y) coordinate
 */
export interface Point {
    x: number;
    y: number;
}
/**
 * Expands the simple (x, y) coordinate by adding info about whether the
 * element would fit inside the viewport at that position, as well as
 * how much of the element would be visible.
 */
export interface OverlayPoint extends Point {
    visibleArea: number;
    fitsInViewport: boolean;
}
