import { ApplicationRef, ComponentFactoryResolver, ComponentRef, Injector, ModuleWithProviders, NgZone, TemplateRef, ViewContainerRef } from '@angular/core';
import { CdkPortal, CdkPortalOutlet, ComponentPortal, DomPortalOutlet, Portal, PortalInjector, TemplatePortal } from '@angular/cdk/portal';
import { ComponentType, ConnectedOverlayPositionChange, ConnectedPosition, ConnectionPositionPair, FlexibleConnectedPositionStrategy, Overlay, OverlayConfig, OverlayContainer, OverlayKeyboardDispatcher, OverlayPositionBuilder, OverlayRef, PositionStrategy, ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';
import { Platform } from '@angular/cdk/platform';
import { Directionality } from '@angular/cdk/bidi';
export declare class NbPortalDirective extends CdkPortal {
}
export declare class NbPortalOutletDirective extends CdkPortalOutlet {
}
export declare class NbComponentPortal<T = any> extends ComponentPortal<T> {
    cfr?: ComponentFactoryResolver;
    constructor(component: ComponentType<T>, vcr?: ViewContainerRef, injector?: Injector, cfr?: ComponentFactoryResolver);
}
export declare class NbDomPortalOutlet extends DomPortalOutlet {
    outletElement: Element;
    private componentFactoryResolver;
    private appRef;
    private defaultInjector;
    constructor(outletElement: Element, componentFactoryResolver: ComponentFactoryResolver, appRef: ApplicationRef, defaultInjector: Injector);
    attachComponentPortal<T>(portal: NbComponentPortal<T>): ComponentRef<T>;
    private getComponentRootNode;
}
export declare class NbOverlay extends Overlay {
    scrollStrategies: ScrollStrategyOptions;
    protected overlayContainer: OverlayContainer;
    protected componentFactoryResolver: ComponentFactoryResolver;
    protected positionBuilder: OverlayPositionBuilder;
    protected keyboardDispatcher: OverlayKeyboardDispatcher;
    protected injector: Injector;
    protected ngZone: NgZone;
    private document;
    private directionality;
    protected appRef: ApplicationRef;
    protected static nextUniqueId: number;
    constructor(scrollStrategies: ScrollStrategyOptions, overlayContainer: OverlayContainer, componentFactoryResolver: ComponentFactoryResolver, positionBuilder: OverlayPositionBuilder, keyboardDispatcher: OverlayKeyboardDispatcher, injector: Injector, ngZone: NgZone, document: any, directionality: Directionality);
    create(config?: OverlayConfig): OverlayRef;
    protected createPaneElement(host: HTMLElement): HTMLElement;
    protected createHostElement(): HTMLElement;
    protected createPortalOutlet(pane: HTMLElement): NbDomPortalOutlet;
}
export declare class NbPlatform extends Platform {
}
export declare class NbOverlayPositionBuilder extends OverlayPositionBuilder {
}
export declare class NbTemplatePortal<T = any> extends TemplatePortal<T> {
    constructor(template: TemplateRef<T>, viewContainerRef?: ViewContainerRef, context?: T);
}
export declare class NbOverlayContainer extends OverlayContainer {
}
export declare class NbFlexibleConnectedPositionStrategy extends FlexibleConnectedPositionStrategy {
}
export declare class NbPortalInjector extends PortalInjector {
}
export declare type NbPortal<T = any> = Portal<T>;
export declare type NbOverlayRef = OverlayRef;
export declare type NbComponentType<T = any> = ComponentType<T>;
export declare type NbPositionStrategy = PositionStrategy;
export declare type NbConnectedPosition = ConnectedPosition;
export declare type NbConnectedOverlayPositionChange = ConnectedOverlayPositionChange;
export declare type NbConnectionPositionPair = ConnectionPositionPair;
export declare type NbOverlayConfig = OverlayConfig;
export declare type NbScrollStrategyOptions = ScrollStrategyOptions;
export declare type NbScrollStrategy = ScrollStrategy;
export declare class NbCdkMappingModule {
    static forRoot(): ModuleWithProviders;
}
