interface AuthError {
    isAuthenticationProblem?: () => boolean;
    isTermsProblem: () => boolean;
    isLoginProblem: () => boolean;
}
/**
 * @class AuthRecovery
 *
 * @description
 * Handles authentication recovery by triggering a token refresh request.
 * The refresh mechanism is based on the refresh token stored in the dedicated HTTP-only cookie.
 * If the authorization token is expired, it will attempt to refresh the token and retry the request.
 * If the refresh fails, it will throw the original exception.
 */
export declare class AuthRecovery {
    private refreshPromise;
    private refreshFn;
    private constructor();
    private static instance;
    static getInstance(): AuthRecovery;
    /**
     * Triggers a token refresh request, deduplicating concurrent calls
     * so only one request is in-flight at a time.
     * All callers awaiting a refresh share the same promise.
     */
    tryRefresh(): Promise<void>;
    /**
     * Returns true when the error is a plain 401 that should trigger a token
     * refresh — i.e. not a Terms of Service acceptance error and not a login-credential error.
     */
    isRefreshableAuthError(error: AuthError): boolean;
    /**
     * Handles an unrecoverable authentication failure by redirecting to /login.
     */
    handleAuthFailure(error: AuthError): void;
}
export {};
//# sourceMappingURL=AuthRecovery.d.ts.map