import { OnDestroy, OnInit } from '@angular/core';
import { BsModalRef } from 'ngx-bootstrap/modal';
import { Observable } from 'rxjs';
import { StatusType } from '../common/status.model';
import { ModalLabels } from '../select-modal/select-modal.model';
import { SafeHtml } from '@angular/platform-browser';
import * as i0 from "@angular/core";
/**
 * Defines options to be displayed in the confirm dialog.
 */
export interface ConfirmOptions {
    [key: string]: ConfirmOption;
}
export interface ConfirmOption {
    text: string;
    checked?: boolean;
    showIf?: boolean | (() => boolean | Promise<boolean> | Observable<boolean>);
    /**
     * Will disable the current option when an option with the given key is selected.
     */
    disabledByKey?: string;
}
export declare class ConfirmModalComponent implements OnInit, OnDestroy {
    private modal;
    result: Promise<boolean | {
        confirmed: boolean;
        confirmOptions: {
            [key: string]: boolean;
        };
    }>;
    dismiss: () => void;
    close: () => void;
    title: string;
    body: string | SafeHtml;
    confirmOptions: ConfirmOptions;
    status: StatusType;
    requireCodeVerification?: boolean;
    set labels(labels: ModalLabels);
    get labels(): ModalLabels;
    code: string;
    confirmString: string;
    private _labels;
    constructor(modal: BsModalRef);
    ngOnInit(): void;
    get classIcon(): string;
    get classAlert(): string;
    ngOnDestroy(): void;
    isHtml(str: string | SafeHtml): boolean;
    canConfirmWithCode(): boolean;
    get isOkButtonDisabled(): boolean;
    private generateRandomCode;
    static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmModalComponent, "c8y-confirm-modal", never, { "title": { "alias": "title"; "required": false; }; "body": { "alias": "body"; "required": false; }; "confirmOptions": { "alias": "confirmOptions"; "required": false; }; "status": { "alias": "status"; "required": false; }; "requireCodeVerification": { "alias": "requireCodeVerification"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; }, {}, never, ["*"], false, never>;
}
//# sourceMappingURL=modal-confirm.component.d.ts.map