import { HttpErrorResponse } from '@angular/common/http';
export declare class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {
    code?: string;
    requestId?: string;
    doc?: string;
    details?: DETAILS;
    severity: UxMessageSeverity;
    msgId: string;
    description: string;
    errGroupMap?: Array<UxErrorGroupMap>;
    subErrors?: SubErrors;
    constructor(info: UxErrorInfo & UxHttpErrorInfo, errorFeedback: UxErrorFeedback, subErrors?: SubErrors, errGroupMap?: Array<UxErrorGroupMap>);
    getFeedBacks(byKey?: string): Array<UxErrorFeedback>;
    private checkAttribute;
}
export declare class UxErrorGroupOnClickEvent {
    groupId: string;
    err?: UxErrorFeedback;
    constructor(groupId: string, err?: UxErrorFeedback);
}
export interface UxErrorFollowMap {
    [groupId: string]: boolean;
}
export type UxErrorGroupMap = {
    id: string;
    description: string;
    severity: UxMessageSeverity;
};
export type UxErrorGroupItem = {
    groupId: string;
    description: string;
    severity: UxMessageSeverity;
    errors: Array<UxErrorFeedback>;
};
export interface UxErrorInfo<DETAILS = unknown> {
    code?: string;
    doc?: string;
    details?: DETAILS;
}
export interface UxHttpErrorInfo {
    requestId?: string;
}
export interface UxErrorFeedback extends UxErrorMessage {
    severity?: UxMessageSeverity;
    attributes?: UxValidationErrorAttributes;
    errGroupId?: string;
    br?: string;
    doc?: string;
}
export interface UxErrorMessage {
    msgId: string;
    description?: string;
}
export type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;
export interface UxValidationErrorAttribute {
    key: string | Array<string>;
    value: string;
}
export declare enum UxMessageSeverity {
    info = "info",
    warning = "warning",
    danger = "danger",
    success = "success"
}
export declare enum UxMessageSeverityMetrics {
    info = 0,
    warning = 1,
    danger = 2,
    success = 3
}
export type SubErrors = Array<UxValidationErrorClass>;
export declare class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {
    msgId: string;
    description?: string;
    severity: UxMessageSeverity;
    attributes: UxValidationErrorAttributes;
    br?: string;
    doc?: string;
    details?: Details;
    errGroupId?: string;
    constructor(data: UxValidationErrorClass);
}
export type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;
export interface UxHttpErrorResponse extends HttpErrorResponse {
    uxHttpErrorOutput: UxErrorOutput;
}
export declare const transformToUxHttpResponse: (resp: HttpErrorResponse, mapper: ErrorMappingHandler) => UxHttpErrorResponse;
export type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;
export declare class UxPublishErrorFeedbackEvent {
    err: UxErrorOutput;
    id?: string;
    groupId?: string;
    accumulate?: boolean;
    constructor(err: UxErrorOutput, id?: string, groupId?: string, accumulate?: boolean);
}
export declare class UxClearErrorFeedbackEvent {
    id?: string;
    groupId?: string;
    constructor(id?: string, groupId?: string);
}
//# sourceMappingURL=ux-error-feedback.model.d.ts.map