export type RegisterErrorKind = "network" | "http" | "schema"; export declare abstract class RegisterError extends Error { abstract readonly kind: RegisterErrorKind; } export declare class RegisterNetworkError extends RegisterError { readonly kind: "network"; readonly cause?: unknown; constructor(message: string, cause?: unknown); } export declare class RegisterHttpError extends RegisterError { readonly kind: "http"; readonly status: number; readonly body: { error?: string; } | string; constructor(status: number, body: { error?: string; } | string, message: string); } export interface AjvLikeError { readonly instancePath: string; readonly message?: string; } export declare class RegisterSchemaError extends RegisterError { readonly kind: "schema"; readonly ajvErrors: readonly AjvLikeError[]; constructor(ajvErrors: readonly AjvLikeError[], message: string); } export type CredentialsErrorKind = "keychain-unavailable" | "crypto" | "corrupt"; export declare abstract class CredentialsError extends Error { abstract readonly kind: CredentialsErrorKind; } /** OS keychain is unreachable (probe failed, secret-service / D-Bus * down, libsecret missing, etc.). Callers who need a keychain-ref * BLOB to succeed should either fall back via isKeychainAvailable() * first, or rethrow and surface a user-actionable message. */ export declare class CredentialsKeychainUnavailableError extends CredentialsError { readonly kind: "keychain-unavailable"; readonly cause?: unknown; constructor(message: string, cause?: unknown); } /** Fallback crypto path failed: KDF (cannot read/write the master * key), AES-256-GCM encrypt, or AES-256-GCM decrypt surface not * covered by the more specific CredentialsCorruptError (e.g. scrypt * OOM). The `op` discriminator lets callers distinguish key- * derivation, encrypt, and decrypt time failures. */ export declare class CredentialsCryptoError extends CredentialsError { readonly kind: "crypto"; readonly op: "encrypt" | "decrypt" | "kdf"; readonly cause?: unknown; constructor(op: "encrypt" | "decrypt" | "kdf", message: string, cause?: unknown); } /** BLOB integrity check failed: unknown version prefix, keychain * entry missing for a keychain-ref BLOB, or AES-GCM auth tag * mismatch on a fallback BLOB. This is a data-integrity signal, not * an upstream error — no `cause` field. Callers who see this MUST * treat the stored row as untrusted; silent retry hides tampering. */ export declare class CredentialsCorruptError extends CredentialsError { readonly kind: "corrupt"; constructor(message: string); }