/**
 * @author: Prachi Singh (prachi@hackcapital.com)
 * @date: Monday, 6th May 2019 11:11:49 am
 * @lastModifiedBy: Prachi Singh (prachi@hackcapital.com)
 * @lastModifiedTime: Thursday, 3rd October 2019 4:46:05 pm
 *
 * DESCRIPTION: Base class that the custom errors should be extending from
 * Error template that provides a modular, extensible and customizable errors.
 * Sourced from https://git.cto.ai/hackcapital/tools/errors
 * Modified slightly to fit the application's need
 *
 * @copyright (c) 2019 Hack Capital
 */
import { IExtra } from '../types';
/**
 * ErrorTemplate class provide a base class for customized errors
 *
 * @extends Error
 */
export declare class ErrorTemplate extends Error {
    message: string;
    original?: Error | ErrorResponse | undefined;
    statusCode?: number | undefined;
    errorCode?: string | undefined;
    extra: IExtra;
    /**
     * @constructor
     *
     * @param {String} [message] Error Message
     * @param {Object} [extra] Append any extra information to the error message
     * @param {Number} [statusCode] Specific for HTTP request, e.g.: 404
     * @param {String} [errorCode] Error codes, e.g.: U0010
     * @param {Error} [original] Original error object
     */
    constructor(message: string, original?: Error | ErrorResponse | undefined, extra?: IExtra, statusCode?: number | undefined, errorCode?: string | undefined);
}
export interface ErrorResponse {
    data: null;
    error: GoError[];
    message: string;
    stack: string;
}
export interface GoError {
    requestID: string;
    code: number;
    message: string;
}
