import { XPosition, YPosition } from './position';
import { LyTheme2 } from '../theme/theme2.service';
import { ViewportRuler } from '@angular/cdk/scrolling';
export declare class LyOverlayPosition {
    private _theme;
    private _viewportRuler;
    private _trigger;
    private _overlay;
    private _triggerRect;
    private _overlayRect;
    private _xAnchor?;
    private _yAnchor?;
    private _xAxis;
    private _yAxis;
    private _flip;
    private _viewportOffset;
    private _viewportHeight;
    private _viewportWidth;
    /** Transform element's bounding `ClientRect` before render. */
    private _transform?;
    private _anchorDir;
    private _axisDir;
    /** xAnchor position */
    private _xa;
    /** XAnchor position */
    private _ya;
    readonly x: number;
    private _x;
    readonly y: number;
    private _y;
    readonly xo: number;
    private _xo;
    readonly yo: number;
    private _yo;
    readonly width: number;
    private _width;
    readonly height: number;
    private _height;
    constructor(_theme: LyTheme2, _viewportRuler: ViewportRuler, _trigger: Element, _overlay: Element);
    build(): this;
    private _updateRects;
    private _setDefaultAnchor;
    private _callTransformIfExists;
    private _updateDir;
    private _calculateResponsive;
    /**
     * Return true if the menu overflows vertically
     */
    private _isOverflowX;
    private _isOverflowLeft;
    private _isOverflowRight;
    /** Return true the menu overflows horizontally */
    private _isOverflowY;
    private _isOverflowTop;
    private _isOverflowBottom;
    private _calculate;
    private _calculateAnchorPosition;
    private _calculateAxis;
    /** Calculate origin for overlay */
    private _calculateOrigin;
    private _round;
    setXAnchor(val: XPosition | number): this;
    setYAnchor(val: YPosition | number): this;
    setXAxis(val?: XPosition | null): this;
    setYAxis(val?: YPosition | null): this;
    setFlip(flip?: boolean): this;
    /**
     * Offset from the edge of the viewport to the center.
     * It is the minimum space that must be between the window and the overlay.
     */
    setViewportOffset(val: number): this;
    setTransform(transform: (triggerRect: ClientRect, overlayRect: ClientRect) => void): void;
}
