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;
    private _xOffset;
    private _yOffset;
    private _rawX;
    private _rawY;
    /** Transform element's bounding `ClientRect` before render. */
    private _transform?;
    private _anchorDir;
    private _axisDir;
    /** xAnchor position */
    private _xa;
    /** XAnchor position */
    private _ya;
    get x(): number;
    private _x;
    get y(): number;
    private _y;
    get xo(): number;
    private _xo;
    get yo(): number;
    private _yo;
    get width(): number;
    private _width;
    get height(): number;
    private _height;
    get triggerRect(): ClientRect;
    /** Returns x, but not rounded */
    get rawX(): number;
    /** Returns y, but not rounded */
    get rawY(): number;
    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;
    setXOffset(val: number): this;
    setYOffset(val: number): 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): this;
}
