import { BsModalService } from 'ngx-bootstrap/modal';
import { StatusType } from '../common/status.model';
import { GainsightService } from '../product-experience/gainsight.service';
import { ProductExperienceEvent } from '../product-experience/product-experience.model';
import { ConfirmModalComponent, ConfirmOptions } from './modal-confirm.component';
import * as i0 from "@angular/core";
/**
 * Service to show a modal.
 */
export declare class ModalService {
    private modalService;
    private gainsightService;
    constructor(modalService: BsModalService, gainsightService: GainsightService);
    /**
     * Shows a quick confirm message modal.
     * @param title The title of that modal.
     * @param body The text body to display.
     * @param status The status.
     * @param labels The labels to use. Default: { ok: 'Confirm', cancel: 'Cancel'}
     * @param confirmOptions Selection options to display as checkbox list.
     * @param productExperienceEvent Additional data to attach to custom product experience events.
     * @param requireCodeVerification Whether to require user to retype a random code for confirmation.
     */
    confirm(title: string, body: string, status?: StatusType, labels?: ConfirmModalComponent['labels'], confirmOptions?: ConfirmOptions, productExperienceEvent?: ProductExperienceEvent, requireCodeVerification?: boolean): Promise<boolean | {
        confirmed: boolean;
        confirmOptions: {
            [key: string]: boolean;
        };
    }>;
    /**
     * Shows a quick acknowledge message modal.
     * @param title The title of that modal.
     * @param body The text body to display.
     * @param status The status.
     * @param acknowledgeLabel The label to use.
     * @param productExperienceEvent Additional data to attach to custom product experience events.
     */
    acknowledge(title: string, body: string, status?: StatusType, acknowledgeLabel?: string, productExperienceEvent?: ProductExperienceEvent): Promise<boolean | {
        confirmed: boolean;
        confirmOptions: {
            [key: string]: boolean;
        };
    }>;
    /**
     * Shows a quick logout confirmation modal.
     * @param body The text body to display. Default: 'You will be logged out to apply your changes. Do you want to proceed?'
     * @param status The status.
     * @param labels The labels to use. Default: { ok: 'Confirm and log out', cancel: 'Cancel' }
     */
    confirmLogout(body?: string, status?: StatusType, labels?: any): Promise<boolean | {
        confirmed: boolean;
        confirmOptions: {
            [key: string]: boolean;
        };
    }>;
    private triggerEvent;
    static ɵfac: i0.ɵɵFactoryDeclaration<ModalService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ModalService>;
}
//# sourceMappingURL=modal.service.d.ts.map