import { ConnectedOverlayPositionChange, OverlayRef } from '@angular/cdk/overlay';
import { Location } from '@angular/common';
import { NgZone } from '@angular/core';
import { Router } from '@angular/router';
import { NgDocOverlayConfig, NgDocOverlayContainer } from '@ng-doc/ui-kit/interfaces';
import { Observable } from 'rxjs';
export declare class NgDocOverlayRef<T = unknown> {
    readonly overlayRef: OverlayRef;
    private readonly overlayConfig;
    readonly overlayContainer: NgDocOverlayContainer;
    private readonly ngZone;
    private readonly router?;
    private readonly location?;
    private overlayResult;
    private opened;
    constructor(overlayRef: OverlayRef, overlayConfig: NgDocOverlayConfig, overlayContainer: NgDocOverlayContainer, ngZone: NgZone, router?: Router | undefined, location?: Location | undefined);
    /** Sets focus to overlay */
    focus(): void;
    /** Overlay has focus */
    get isFocused(): boolean;
    /** Overlay is opened */
    get isOpened(): boolean;
    /** Overlay has attached */
    get hasAttached(): boolean;
    /**
     * Closes overlay
     * @param closeResult
     */
    close(closeResult?: T): void;
    beforeOpen(): Observable<void>;
    afterOpen(): Observable<void>;
    beforeClose(): Observable<T | null>;
    afterClose(): Observable<T | null>;
    positionChanges(): Observable<ConnectedOverlayPositionChange>;
    private outsideClickChecker;
}
