import { OverlayRef } from '@angular/cdk/overlay';
import { Observable } from 'rxjs';
import { NcModalComponent } from './modal.component';
export declare type NcModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
export declare type NcDialogType = 'info' | 'error' | 'warning' | 'help' | 'success';
export declare type NcDialogRole = 'dialog' | 'alertdialog';
export declare class NcModalOptions {
    size?: NcModalSize;
    type?: NcDialogType;
    role?: NcDialogRole;
    labelledBy?: string;
    describedBy?: string;
    closeOnEscape?: boolean;
    closeOnOutsideClick?: boolean;
    closeOnNavigation?: boolean;
}
export declare type ExtractInput<C extends NcModalComponent<any>> = C extends NcModalComponent<infer I, any> ? I : never;
export declare type ExtractOutput<C extends NcModalComponent<any>> = C extends NcModalComponent<any, infer O> ? O : never;
export declare class NcModalRef<C extends NcModalComponent<any, any>, O = ExtractOutput<C>> {
    private overlayRef;
    /** @ignore */
    private closeSubject;
    readonly closed$: Observable<O>;
    componentInstance: C;
    constructor(overlayRef: OverlayRef, options: NcModalOptions);
    close(result?: O): void;
    afterClosed({ closeOnUnsubscribe }?: {
        closeOnUnsubscribe: boolean;
    }): Observable<O>;
    /** @ignore */
    private softClose;
}
