import { BreakpointObserver } from '@angular/cdk/layout';
import { Overlay, OverlayRef } from '@angular/cdk/overlay';
import { ComponentType } from '@angular/cdk/portal';
import { ApplicationRef, ComponentFactoryResolver, ComponentRef, ElementRef, Injector } from '@angular/core';
import { Router } from '@angular/router';
import { BehaviorSubject, Subscription } from 'rxjs';
import { OverlayComponent } from './overlay.component';
import * as i0 from "@angular/core";
export declare enum ModalSize {
    DYNAMIC = "DYNAMIC",
    EXTRA_SMALL = "EXTRA_SMALL",
    SMALL = "SMALL",
    MEDIUM = "MEDIUM",
    LARGE = "LARGE",
    COMPACT_EXTRA_SMALL = "COMPACT_EXTRA_SMALL"
}
interface OverlayOpts<T> {
    title?: string;
    titleOpts?: {
        [key: string]: string;
    };
    hasTitleBar?: boolean;
    modalSize?: ModalSize;
    closeOnBackdropClick?: boolean;
    closeOnNavigate?: boolean;
    shadowDOM?: boolean;
    backgroundColor?: string;
    init?: (component: T) => void;
    close?: (component: T) => void;
}
interface OverlayConfig {
    overlayRef: OverlayRef;
    componentRef: ComponentRef<any>;
    overlayComponent: OverlayComponent<any>;
    hostElement: ElementRef;
    shadowDom: boolean;
    subscriptions: Subscription;
    close?: (component: any) => void;
}
export declare class OverlayService {
    private _overlay;
    private _resolver;
    private _injector;
    private _appRef;
    private _breakpointObserver;
    private _cdkContainer$;
    private _router;
    overlays: OverlayConfig[];
    private _portalHost;
    private _rootContainerRef;
    constructor(_overlay: Overlay, _resolver: ComponentFactoryResolver, _injector: Injector, _appRef: ApplicationRef, _breakpointObserver: BreakpointObserver, _cdkContainer$: BehaviorSubject<any>, _router: Router);
    createModal<T>(hostElement: ElementRef, component: ComponentType<T>, config?: OverlayOpts<T>): OverlayComponent<T> | undefined;
    private _initOverlay;
    private _closeModal;
    closeModal<T>(overlayComponent?: OverlayComponent<T>): void;
    closeAllModals(): void;
    createRootOverlayContainer(): void;
    private _width;
    private _height;
    private _size;
    private _calculatePositionStrategy;
    private _breakpointMatched;
    private _fullscreen;
    private _getContainer;
    private _setRootContainerTheme;
    private _setRootContainer;
    private _getOutlet;
    private _getCdkContainer;
    static ɵfac: i0.ɵɵFactoryDeclaration<OverlayService, [null, null, null, null, null, null, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<OverlayService>;
}
export {};
