/** * WsKitError: type-safe error wrapper. * * Semantics: * - wrap(err, code) preserves type safety * - Never narrows error codes (immutable) * - If err is already WsKitError, return as-is or clone with new code * - Never mutates */ import type { ErrorCode, WsKitErrorData } from "./codes.js"; export declare class WsKitError extends Error { readonly code: E; readonly details?: Record; readonly retryable: boolean; constructor(code: E, message: string, details?: Record); /** * Wrap unknown error with a code (preserves type safety). */ static wrap(err: unknown, code?: E, details?: Record): WsKitError; /** * Clone with new code (never mutate). */ with(opts: { code?: E2; details?: Record; }): WsKitError; toJSON(): WsKitErrorData; } //# sourceMappingURL=error.d.ts.map