/**
 * The three user-facing password operations whose health is tracked
 * on the WaaS password-encrypted backups dashboard.
 */
export type PasswordOperation = 'setPassword' | 'updatePassword' | 'unlockWallet';
/**
 * Stable, structured classification for failures in the password-encrypted
 * backup / unlock flow. Surfaced as `@errorReason` on the dashboard so panels
 * can branch on a fixed enum instead of substring-matching error messages.
 *
 * Mirrors the convention established by GoogleDriveBackupErrorReason
 * (backup/providers/googleDrive.ts) — see PR #958.
 */
export type PasswordBackupErrorReason = 'wrong_password' | 'stale_local_shares' | 'encryption_failure' | 'decryption_failure' | 'upload_failure' | 'activation_failure' | 'network' | 'unknown';
/**
 * Failures classified as user-actionable are caused by end-user input or
 * local state and are not actionable by oncall. They are emitted at log
 * level `warn` (status:warning) so the dashboard's primary health metric —
 * System-side Success Rate (status:error denominator only) — does not count
 * them as outages.
 *
 * The `satisfies` clause forces every new PasswordBackupErrorReason to
 * declare its user-actionable bit explicitly — adding a member to the union
 * without updating this map is a compile error.
 */
export declare const USER_ACTIONABLE_PASSWORD_BACKUP_ERROR_REASONS: {
    readonly wrong_password: true;
    readonly stale_local_shares: false;
    readonly encryption_failure: false;
    readonly decryption_failure: false;
    readonly upload_failure: false;
    readonly activation_failure: false;
    readonly network: false;
    readonly unknown: false;
};
export declare const isUserActionablePasswordBackupErrorReason: (reason: PasswordBackupErrorReason) => boolean;
/**
 * Classifies an arbitrary error thrown from the password-encrypted backup
 * flow into one of the dashboard-tracked PasswordBackupErrorReason values.
 *
 * Defensive by design: unknown shapes fall through to 'unknown' rather than
 * throwing — this helper runs inside catch blocks and must never mask the
 * original error. Memoizes the result on the Error instance so the same
 * thrown error is only classified once even when it bubbles through
 * multiple catches.
 */
export declare const classifyPasswordBackupError: (error: unknown) => PasswordBackupErrorReason;
//# sourceMappingURL=errors.d.ts.map