type Severity = "info" | "warn" | "error" | "fatal"; interface AppErrorOptions { cause?: unknown; data?: unknown; tags?: string[]; severity?: Severity; status?: number; retryable?: boolean; captureStack?: boolean; } declare class AppError extends Error { readonly code: string; readonly cause?: unknown; readonly data?: unknown; readonly status?: number; readonly tags: readonly string[]; readonly severity: Severity; readonly retryable: boolean; readonly id: string; readonly timestamp: number; constructor(code: string, message?: string, options?: AppErrorOptions); toJSON(): Record; } declare function error(code: string, message?: string, options?: AppErrorOptions): AppError; declare function wrap(err: unknown, code?: string, options?: Omit): AppError; declare function fromUnknown(value: unknown): AppError; declare function isAppError(value: unknown): value is AppError; declare function isCode(err: unknown, code: string): boolean; export { AppError, type AppErrorOptions, type Severity, error, fromUnknown, isAppError, isCode, wrap };