import { DialogRef, MessageService, NotificationService, ValueOf } from '@alauda/ui';
import { EventEmitter, OnDestroy, TemplateRef } from '@angular/core';
import { BehaviorSubject, Observable, Subject } from 'rxjs';
import * as i0 from "@angular/core";
export declare const DeleteType: {
    readonly DELETE: "delete";
    readonly UNINSTALL: "uninstall";
    readonly QUIT: "quit";
    readonly UNBIND: "unbind";
    readonly UNMOUNT: "unmount";
};
export declare type DeleteType = ValueOf<typeof DeleteType>;
export declare type DeleteResourceApi<P, R> = (inputValue?: string, params?: P) => Observable<R> | Promise<R>;
export interface ConfirmDeleteData<P = unknown, R = unknown> {
    context?: unknown;
    type?: DeleteType;
    title: string;
    resourceName: string | string[];
    deleteTips?: string;
    confirmTips?: string;
    extraConfirmTips?: string;
    deleteResourceApi: DeleteResourceApi<P, R>;
    deleteResourceParams?: P;
    deleteSuccessMsg?: string;
    deleteFailMsg?: string;
    confirmText?: string;
}
export declare class ConfirmDeleteTipDirective {
    templateRef: TemplateRef<any>;
    constructor(templateRef: TemplateRef<any>);
    static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDeleteTipDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ConfirmDeleteTipDirective, "[aclConfirmDeleteTip]", never, {}, {}, never, never, false>;
}
export declare class ConfirmDeleteContentDirective {
    templateRef: TemplateRef<any>;
    constructor(templateRef: TemplateRef<any>);
    static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDeleteContentDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ConfirmDeleteContentDirective, "[aclConfirmDeleteContent]", never, {}, {}, never, never, false>;
}
export declare class ConfirmDeleteLabelDirective {
    templateRef: TemplateRef<any>;
    constructor(templateRef: TemplateRef<any>);
    static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDeleteLabelDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ConfirmDeleteLabelDirective, "[aclConfirmDeleteLabel]", never, {}, {}, never, never, false>;
}
export declare class ConfirmDeleteComponent<P = unknown, R = unknown> implements ConfirmDeleteData<P, R>, OnDestroy {
    private readonly message;
    private readonly notification;
    private readonly dialogRef?;
    data?: ConfirmDeleteData<P, R>;
    context?: unknown;
    type: DeleteType;
    title: string;
    resourceName: string | string[];
    deleteTips?: string;
    confirmTips?: string;
    extraConfirmTips?: string;
    confirmText?: string;
    deleteResourceApi: DeleteResourceApi<P, R>;
    deleteResourceParams?: P;
    deleteSuccessMsg: string;
    deleteFailMsg: string;
    close: EventEmitter<R>;
    deleteTipTemplate: TemplateRef<any>;
    contentTemplate: TemplateRef<any>;
    labelTemplate: TemplateRef<any>;
    inputValue: string;
    inputValue$$: BehaviorSubject<string>;
    deleting$$: BehaviorSubject<boolean>;
    disabled$: Observable<boolean>;
    destroy$$: Subject<void>;
    errorColor: string;
    constructor(message: MessageService, notification: NotificationService, dialogRef?: DialogRef<ConfirmDeleteComponent<P, R>, R>, data?: ConfirmDeleteData<P, R>);
    ngOnDestroy(): void;
    onConfirm(): void;
    closeDialog(result?: R): void;
    private resolveData;
    static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmDeleteComponent<any, any>, [null, null, { optional: true; }, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmDeleteComponent<any, any>, "acl-confirm-delete", never, { "context": "context"; "type": "type"; "title": "title"; "resourceName": "resourceName"; "deleteTips": "deleteTips"; "confirmTips": "confirmTips"; "extraConfirmTips": "extraConfirmTips"; "confirmText": "confirmText"; "deleteResourceApi": "deleteResourceApi"; "deleteResourceParams": "deleteResourceParams"; "deleteSuccessMsg": "deleteSuccessMsg"; "deleteFailMsg": "deleteFailMsg"; }, { "close": "close"; }, ["deleteTipTemplate", "contentTemplate", "labelTemplate"], never, false>;
}
