import { ComponentRef, NgZone, TemplateRef } from '@angular/core';
import { ModalBaseService } from './modal-base.service';
import { ModalComponent } from './modal.component';
export interface ModalOption {
    title?: string;
    message?: string;
    status?: 'error' | 'success' | 'warning' | 'info';
    atType?: 'confirm' | 'normal';
    atComponent?: TemplateRef<void>;
    showFooter?: boolean;
    showHeader?: boolean;
    width?: number;
    top?: number;
    closeable?: boolean;
    cancel?(): void;
    ok?(): void;
    atOnClose?: OnClickCallback<ModalComponent>;
    atOnOk?: OnClickCallback<ModalComponent>;
    atAfterClose?(): void;
    atAfterOk?(): void;
}
export interface ModalDataFilled {
    remove(): void;
    modal: ComponentRef<ModalComponent>;
}
export declare type OnClickCallback<T> = ((instance: T) => (false | void | {}) | Promise<boolean | void | {}>);
export declare class AtModalService {
    private base_modal_service;
    private ngZone;
    constructor(base_modal_service: ModalBaseService, ngZone: NgZone);
    modal(config?: ModalOption): Promise<ModalComponent>;
    success(config: ModalOption): void;
    error(config: ModalOption): void;
    warning(config: ModalOption): void;
    info(config: ModalOption): void;
    confirm(config: ModalOption): void;
    setConfirm(config: ModalOption): void;
}
