import { ComponentFactoryResolver, ComponentRef, TemplateRef, ViewContainerRef } from '@angular/core';
import { NbComponentType, NbOverlayPositionBuilder, NbOverlayRef, NbOverlayService } from '../cdk/overlay';
import { NbBlockScrollStrategyAdapter } from '../cdk/adapter/block-scroll-strategy-adapter';
import { NbWindowConfig } from './window.options';
import { NbWindowRef } from './window-ref';
import { NbWindowComponent } from './window.component';
export declare class NbWindowService {
    protected componentFactoryResolver: ComponentFactoryResolver;
    protected overlayService: NbOverlayService;
    protected overlayPositionBuilder: NbOverlayPositionBuilder;
    protected blockScrollStrategy: NbBlockScrollStrategyAdapter;
    protected readonly defaultWindowsConfig: NbWindowConfig;
    protected cfr: ComponentFactoryResolver;
    protected overlayRef: NbOverlayRef;
    protected windowsContainerViewRef: ViewContainerRef;
    protected openWindows: NbWindowRef[];
    constructor(componentFactoryResolver: ComponentFactoryResolver, overlayService: NbOverlayService, overlayPositionBuilder: NbOverlayPositionBuilder, blockScrollStrategy: NbBlockScrollStrategyAdapter, defaultWindowsConfig: NbWindowConfig, cfr: ComponentFactoryResolver);
    open(windowContent: TemplateRef<any> | NbComponentType, windowConfig?: Partial<NbWindowConfig>): NbWindowRef;
    protected createWindowsContainer(): void;
    protected appendWindow(content: TemplateRef<any> | NbComponentType, config: NbWindowConfig, windowRef: NbWindowRef): ComponentRef<NbWindowComponent>;
    protected subscribeToEvents(windowRef: NbWindowRef): void;
    protected checkAndUpdateOverlay(): void;
}
