/**
 * Error Translation Service
 *
 * Provides logic to analyze various types of error and convert them into useful (but properly redacted!!!) human readable form.
 *
 * @author Maryit Sanchez <msanchez@alertlogic.com>
 * @author M-M-Massive McNielsen <knielsen@alertlogic.com>
 *
 * @copyright Alert Logic, Inc 2020
 */
import { AxiosResponse } from 'axios';
import { AlDataValidationError, AlWrappedError } from '@al/core';
import { AlSCErrorDescriptor } from '../types/al-generic.types';
import { AlExternalContentManagerService } from './al-external-content-manager.service';
import * as i0 from "@angular/core";
export interface AlErrorDescriptor {
    title: string;
    description: string;
    details?: any;
}
export declare class AlErrorTranslatorService {
    contentManager: AlExternalContentManagerService;
    constructor(contentManager: AlExternalContentManagerService);
    describeError(error: any): Promise<AlErrorDescriptor>;
    /**
     *  Utility function to descend into arbitrarily nested and potentially circular data, replacing any AIMS tokens
     *  or Authorization headers with a redaction marker.
     *
     *  If `trimCircularity` is true (default), circular references will be flattened with a special string, making the object
     *  suitable for serialization.
     */
    redact(info: any, trimCircularity?: boolean, circular?: any[]): any;
    protected getErrorDescription(error: any): Promise<string>;
    protected compactDataValidationError(error: AlDataValidationError): any;
    protected compactErrorResponse(response: AxiosResponse<any>): any;
    protected compactWrappedError(error: AlWrappedError): any;
    protected compactError(error: Error, type?: string, otherProperties?: any): any;
    protected consolidateWrappedErrorDescription(error: AlWrappedError | Error | AxiosResponse | string): Promise<string>;
    /**
     * Matches a response TODO(kjn): hook this up to the content service, when it's available, and use content from there instead of here :)
     */
    protected getResponseDescription(response: AxiosResponse<any>): Promise<string>;
    /**
     *  Finds an appropriate message in a list of error definitions
     */
    protected lookupResponseDescription(definitions: AlSCErrorDescriptor[], criteria: any): string | null;
    /**
     * Interpolates request information into an error message
     */
    protected interpolateMessageData(message: string, criteria: any): string;
    static ɵfac: i0.ɵɵFactoryDef<AlErrorTranslatorService, never>;
    static ɵprov: i0.ɵɵInjectableDef<AlErrorTranslatorService>;
}
