/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
import { OverlayRef } from '@angular/cdk/overlay';
import { ChangeDetectorRef, EventEmitter, OnChanges, SimpleChanges, TemplateRef, Type, ViewContainerRef } from '@angular/core';
import { NzButtonType } from 'ng-zorro-antd/button';
import { NzConfigService } from 'ng-zorro-antd/core';
import { Observable } from 'rxjs';
import { NzModalFooterDirective } from './modal-footer.directive';
import { NzModalLegacyAPI } from './modal-legacy-api';
import { NzModalRef } from './modal-ref';
import { ModalButtonOptions, ModalTypes, OnClickCallback, StyleObjectLike } from './modal-types';
import { NzModalService } from './modal.service';
import * as i0 from "@angular/core";
export declare class NzModalComponent<T = any, R = any> implements OnChanges, NzModalLegacyAPI<T, R> {
    nzConfigService: NzConfigService;
    private cdr;
    private modal;
    private viewContainerRef;
    nzMask: boolean;
    nzMaskClosable: boolean;
    nzVisible: boolean;
    nzClosable: boolean;
    nzOkLoading: boolean;
    nzOkDisabled: boolean;
    nzCancelDisabled: boolean;
    nzCancelLoading: boolean;
    nzKeyboard: boolean;
    nzNoAnimation: boolean;
    nzContent: string | TemplateRef<{}> | Type<T>;
    nzComponentParams: T;
    nzFooter: string | TemplateRef<{}> | Array<ModalButtonOptions<T>> | null;
    nzGetContainer: HTMLElement | OverlayRef | (() => HTMLElement | OverlayRef);
    nzZIndex: number;
    nzWidth: number | string;
    nzWrapClassName: string;
    nzClassName: string;
    nzStyle: object;
    nzTitle: string | TemplateRef<{}>;
    nzCloseIcon: string | TemplateRef<void>;
    nzMaskStyle: StyleObjectLike;
    nzBodyStyle: StyleObjectLike;
    nzOkText: string | null;
    nzCancelText: string | null;
    nzOkType: NzButtonType;
    nzIconType: string;
    nzModalType: ModalTypes;
    readonly nzOnOk: EventEmitter<T> | OnClickCallback<T>;
    readonly nzOnCancel: EventEmitter<T> | OnClickCallback<T>;
    readonly nzAfterOpen: EventEmitter<void>;
    readonly nzAfterClose: EventEmitter<R>;
    readonly nzVisibleChange: EventEmitter<boolean>;
    contentTemplateRef: TemplateRef<{}>;
    set modalFooter(value: NzModalFooterDirective);
    private modalRef;
    get afterOpen(): Observable<void>;
    get afterClose(): Observable<R>;
    constructor(nzConfigService: NzConfigService, cdr: ChangeDetectorRef, modal: NzModalService, viewContainerRef: ViewContainerRef);
    open(): void;
    close(result?: R): void;
    destroy(result?: R): void;
    triggerOk(): void;
    triggerCancel(): void;
    getContentComponent(): T | void;
    getElement(): HTMLElement | void;
    getModalRef(): NzModalRef | null;
    private setFooterWithTemplate;
    private getConfig;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDef<NzModalComponent<any, any>>;
    static ɵcmp: i0.ɵɵComponentDefWithMeta<NzModalComponent<any, any>, "nz-modal", ["nzModal"], { "nzMask": "nzMask"; "nzMaskClosable": "nzMaskClosable"; "nzVisible": "nzVisible"; "nzClosable": "nzClosable"; "nzOkLoading": "nzOkLoading"; "nzOkDisabled": "nzOkDisabled"; "nzCancelDisabled": "nzCancelDisabled"; "nzCancelLoading": "nzCancelLoading"; "nzKeyboard": "nzKeyboard"; "nzNoAnimation": "nzNoAnimation"; "nzContent": "nzContent"; "nzComponentParams": "nzComponentParams"; "nzFooter": "nzFooter"; "nzGetContainer": "nzGetContainer"; "nzZIndex": "nzZIndex"; "nzWidth": "nzWidth"; "nzWrapClassName": "nzWrapClassName"; "nzClassName": "nzClassName"; "nzStyle": "nzStyle"; "nzTitle": "nzTitle"; "nzCloseIcon": "nzCloseIcon"; "nzMaskStyle": "nzMaskStyle"; "nzBodyStyle": "nzBodyStyle"; "nzOkText": "nzOkText"; "nzCancelText": "nzCancelText"; "nzOkType": "nzOkType"; "nzIconType": "nzIconType"; "nzModalType": "nzModalType"; "nzOnOk": "nzOnOk"; "nzOnCancel": "nzOnCancel"; }, { "nzOnOk": "nzOnOk"; "nzOnCancel": "nzOnCancel"; "nzAfterOpen": "nzAfterOpen"; "nzAfterClose": "nzAfterClose"; "nzVisibleChange": "nzVisibleChange"; }, ["modalFooter"]>;
}
