import { Overlay } from '@angular/cdk/overlay';
import { ComponentFactoryResolver, Injector } from '@angular/core';
import { Subject } from 'rxjs';
import { WindowConfig, WindowSettings } from './window-config';
import { WindowRef } from './window-ref';
import * as i0 from "@angular/core";
export declare class WindowService {
    private readonly injector;
    private readonly overlay;
    private readonly componentFactoryResolver;
    private readonly defaultWindowSettings?;
    readonly activeCount$: Subject<number>;
    private readonly active;
    constructor(injector: Injector, overlay: Overlay, componentFactoryResolver: ComponentFactoryResolver, defaultWindowSettings?: WindowSettings | undefined);
    get hasActiveWindows(): boolean;
    get activeWindowCount(): number;
    get allActiveWindows(): Array<WindowRef<any>>;
    get<D>(id: string): WindowRef<D>;
    close(id: string): void;
    has(id: string): boolean;
    open<D, T>(config: WindowConfig<D, T>): WindowRef<D>;
    remove(id: string): boolean;
    add(windowRef: WindowRef<any>): void;
    private createOverlay;
    static ɵfac: i0.ɵɵFactoryDeclaration<WindowService, [null, null, null, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<WindowService>;
}
