import { ResolutionMethod } from '../publicTypes';
/** Explains Resolution Error options */
declare type ResolutionErrorOptions = {
    providerMessage?: string;
    method?: ResolutionMethod;
    methodName?: string;
    domain?: string;
    currencyTicker?: string;
    recordName?: string;
};
export declare enum ResolutionErrorCode {
    UnregisteredDomain = "UnregisteredDomain",
    UnspecifiedResolver = "UnspecifiedResolver",
    UnsupportedDomain = "UnsupportedDomain",
    UnsupportedMethod = "UnsupportedMethod",
    UnspecifiedCurrency = "UnspecifiedCurrency",
    NamingServiceDown = "NamingServiceDown",
    UnsupportedCurrency = "UnsupportedCurrency",
    IncorrectResolverInterface = "IncorrectResolverInterface",
    RecordNotFound = "RecordNotFound",
    ServiceProviderError = "ServiceProviderError",
    InvalidTwitterVerification = "InvalidTwitterVerification"
}
/**
 * Resolution Error class is designed to control every error being thrown by Resolution
 * @param code - Error Code
 * - UnsupportedDomain - domain is not supported by current Resolution instance
 * - NamingServiceDown - blockchain API is down
 * - UnregisteredDomain - domain is not owned by any address
 * - UnspecifiedResolver - domain has no resolver specified
 * - UnspecifiedCurrency - domain resolver doesn't have any address of specified currency
 * - UnsupportedCurrency - currency is not supported
 * - IncorrectResolverInterface - ResolverInterface is incorrected
 * - RecordNotFound - No record was found
 * @param domain - Domain name that was being used
 * @param method
 */
export declare class ResolutionError extends Error {
    readonly code: ResolutionErrorCode;
    readonly domain?: string;
    readonly method?: string;
    readonly currencyTicker?: string;
    constructor(code: ResolutionErrorCode, options?: ResolutionErrorOptions);
}
export default ResolutionError;
