import { ConnectJwt } from './types';
/**
 * Types of possible Validation errors.
 */
export declare enum AuthErrorCode {
    MISSING_JWT = "MISSING_JWT",
    UNAUTHORIZED_REQUEST = "UNAUTHORIZED_REQUEST",
    FAILED_TO_DECODE = "FAILED_TO_DECODE",
    UNKNOWN_ISSUER = "UNKNOWN_ISSUER",
    WRONG_ISSUER = "WRONG_ISSUER",
    WRONG_AUDIENCE = "WRONG_AUDIENCE",
    MISSING_QSH = "MISSING_QSH",
    INVALID_QSH = "INVALID_QSH",
    INVALID_SIGNATURE = "INVALID_SIGNATURE",
    TOKEN_EXPIRED = "TOKEN_EXPIRED",
    FAILED_TO_OBTAIN_PUBLIC_KEY = "FAILED_TO_OBTAIN_PUBLIC_KEY",
    MISSING_KID = "MISSING_KID"
}
export interface InvalidQshInfo {
    computed: string;
    received: string;
}
interface AuthErrorOptionalAttrs {
    code: AuthErrorCode;
    originError?: unknown | Error;
    connectJwt?: ConnectJwt;
    unverifiedConnectJwt?: ConnectJwt;
    qshInfo?: InvalidQshInfo;
}
/**
 * Error thrown when authentication fails upon installation or request verification.
 */
export declare class AuthError extends Error implements AuthErrorOptionalAttrs {
    message: string;
    code: AuthErrorCode;
    originError?: unknown | Error;
    connectJwt?: ConnectJwt;
    unverifiedConnectJwt?: ConnectJwt;
    qshInfo?: InvalidQshInfo;
    constructor(message: string, { code, originError, connectJwt, unverifiedConnectJwt, qshInfo }: AuthErrorOptionalAttrs);
}
export {};
//# sourceMappingURL=AuthError.d.ts.map