import { TemplateRef } from '@angular/core';
import { DynamicBulkRetrievalError } from './dynamic-bulk-retrieval-error.model';
import { Alert, AlertType } from '../alert';
/**
 * An alert that is shown in the context of a dynamic component (e.g. a widget).
 */
export declare class DynamicComponentAlert<T = any> implements Alert {
    text: string | TemplateRef<any>;
    type: AlertType;
    detailedData: any;
    timeout: number;
    allowHtml: boolean;
    onDetail: () => void;
    onClose: () => void;
    /**
     * Partial data that resolver couldn't provide, for example object with event id, but without it's' details.
     */
    unresolvedData: Partial<T>;
    retrievalError?: DynamicBulkRetrievalError;
    constructor(alert: Alert & Partial<DynamicComponentAlert<T>>);
}
export declare enum DismissAlertStrategy {
    /**
     * Alerts are shown and user is not able to dismiss alerts.
     */
    NONE = "none",
    /**
     * User is able to dismiss alerts. It's still possible to add new alerts which will be displayed.
     */
    TEMPORARY = "temporary",
    /**
     * User is able to dismiss alerts. If alerts group dismissStrategy property is set to TEMPORARY_OR_PERMANENT,
     * its 'userDismissalChoice' property can be set to REMIND_ALLOWED (to allow adding alerts to group later)
     * or REMIND_DISALLOWED (to prevent adding alerts to group).
     */
    TEMPORARY_OR_PERMANENT = "temporary_or_permanent"
}
/**
 * Alerts data for one specific alert type.
 */
export interface AlertGroupData {
    alerts: DynamicComponentAlert[];
    alertDismissal: AlertDismissalData;
}
type AlertDismissalData = {
    dismissStrategy: DismissAlertStrategy.NONE;
    userDismissalChoice?: never;
} | {
    dismissStrategy: DismissAlertStrategy.TEMPORARY;
    userDismissalChoice?: 'REMIND_ALLOWED';
} | {
    dismissStrategy: DismissAlertStrategy.TEMPORARY_OR_PERMANENT;
    userDismissalChoice?: 'REMIND_ALLOWED' | 'REMIND_DISALLOWED';
};
export {};
//# sourceMappingURL=dynamic-component-alert.model.d.ts.map