import { ComponentFactoryResolver, Injector, TemplateRef, Type } from '@angular/core';
import { NbComponentPortal, NbGlobalPositionStrategy, NbOverlayRef, NbOverlayService, NbPositionBuilderService, NbScrollStrategy, NbTemplatePortal } from '../cdk';
import { NbDialogConfig } from './dialog-config';
import { NbDialogRef } from './dialog-ref';
import { NbDialogContainerComponent } from './dialog-container';
export declare class NbDialogService {
    protected document: any;
    protected globalConfig: any;
    protected positionBuilder: NbPositionBuilderService;
    protected overlay: NbOverlayService;
    protected injector: Injector;
    protected cfr: ComponentFactoryResolver;
    constructor(document: any, globalConfig: any, positionBuilder: NbPositionBuilderService, overlay: NbOverlayService, injector: Injector, cfr: ComponentFactoryResolver);
    open<T>(content: Type<T> | TemplateRef<T>, userConfig?: Partial<NbDialogConfig<T>>): NbDialogRef<T>;
    protected createOverlay(config: NbDialogConfig): NbOverlayRef;
    protected createPositionStrategy(): NbGlobalPositionStrategy;
    protected createScrollStrategy(hasScroll: boolean): NbScrollStrategy;
    protected createContainer(config: NbDialogConfig, overlayRef: NbOverlayRef): NbDialogContainerComponent;
    protected createContent<T>(config: NbDialogConfig, content: Type<T> | TemplateRef<T>, container: NbDialogContainerComponent, dialogRef: NbDialogRef<T>): void;
    protected createTemplatePortal<T>(config: NbDialogConfig, content: TemplateRef<T>, dialogRef: NbDialogRef<T>): NbTemplatePortal;
    protected createComponentPortal<T>(config: NbDialogConfig, content: Type<T>, dialogRef: NbDialogRef<T>): NbComponentPortal;
    protected createInjector(config: NbDialogConfig): Injector;
    protected registerCloseListeners<T>(config: NbDialogConfig, overlayRef: NbOverlayRef, dialogRef: NbDialogRef<T>): void;
}
