//#region src/index.d.ts /** The type an error will be serialized into */ type SerializedError = { name: string; message: string; stack: string; cause?: unknown; [otherProperties: string]: unknown; }; /** * A value is considered a serialized error when it's name, message, and stack properties are all * strings. */ declare function isSerializedError(value: unknown): value is SerializedError; /** * Serialize an error into a JS object. When the value is not an error, it recursively serializes * any errors it finds in the object. */ declare function serializeError(error: Error): SerializedError; declare function serializeError(error: unknown): unknown; /** * Deserialize a JS object into an error. When the value is not a serialized error, it recursively * deserializes any errors it finds in the object. */ declare function deserializeError(obj: SerializedError): Error; declare function deserializeError(obj: unknown): unknown; //#endregion export { SerializedError, deserializeError, isSerializedError, serializeError };