/**
 * Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company.
 * @link https://truedirective.com/
 * @license MIT
*/
import { Renderer2, ChangeDetectorRef, EventEmitter, ElementRef } from '@angular/core';
import { CloseEvent } from '@true-directive/base';
export declare class PopupComponent {
    elementRef: ElementRef;
    protected changeDetector: ChangeDetectorRef;
    private _renderer;
    private readonly transform0;
    private readonly transform1;
    private readonly modalTransform0;
    private readonly modalTransform1;
    private readonly modalTransform2;
    protected shiftDx: number;
    static freeze: number;
    static z: number;
    static renderToBody: boolean;
    popup: any;
    close: EventEmitter<CloseEvent>;
    closed: EventEmitter<any>;
    show: EventEmitter<any>;
    position: 'RELATIVE' | 'ABSOLUTE' | 'MODAL' | 'SNACK';
    keepOnTargetClick: boolean;
    private _x;
    private _y;
    private _direction;
    private _visible;
    private _stillVisible;
    private _animating;
    private _overlay;
    private documentContextMenuBound;
    private documentMouseDownBound;
    private documentTouchStartBound;
    private documentScrollBound;
    private documentResizeBound;
    protected _target: any;
    protected zIndex: number;
    getZ(): number;
    /**
     * Focus trap
     * Looking for the next element to switch focus.
     * @param  element  Элемент, относительно которого нужно найти следующий
     * @param  backward Поиск назад (Shift+Tab)
     * @param  parent   Родительский, в котором сейчас ищем
     * @param  found    Заданный элемент найден. Берем следующий подходящий
     * @return          Элемент, на который следует перевести фокус
     */
    private getNextElement;
    popupMouseDown(e: any): void;
    popupTouchStart(e: any): void;
    popupKeyDown(e: any): void;
    addDocumentListeners(): void;
    removeDocumentListeners(): void;
    maxZIndex(element: any): number;
    documentScroll(e: any): void;
    documentResize(e: any): void;
    checkClose(target: any): boolean;
    documentTouchStart(e: TouchEvent): void;
    documentMouseDown(e: MouseEvent): void;
    documentContextMenu(e: any): void;
    readonly visible: boolean;
    private makeOverlay;
    private removeOverlay;
    private resetPosition;
    updatePosition(): void;
    protected resetAnimation(): void;
    protected startAnimation(): void;
    private display;
    closeSnack(): void;
    showByXY(x: number, y: number): void;
    showByTarget(target?: any, direction?: string): void;
    showPopup(): void;
    closePopup(result?: any, confirmed?: boolean): void;
    toggle(target: any, direction: string): void;
    constructor(elementRef: ElementRef, changeDetector: ChangeDetectorRef, _renderer: Renderer2);
}
