import type { CleanupRecord as BackendCleanupRecord, NormalizedBleError as BackendNormalizedBleError, PlatformErrorDetail as BackendPlatformErrorDetail, BleErrorCode, BleErrorDomain } from '../backend-contract/errors.js'; /** Host-neutral cleanup result used by every application-facing resource. */ export type PublicSerializableValue = boolean | number | string | null | Uint8Array | readonly PublicSerializableValue[] | PublicSerializableRecord; export interface PublicSerializableRecord { readonly [key: string]: PublicSerializableValue; } export interface PublicPlatformErrorDetail { readonly domain: string; readonly code: string; readonly safeMessage: string; readonly metadata: PublicSerializableRecord; } export interface NormalizedBleError { readonly code: BleErrorCode; readonly domain: BleErrorDomain; readonly operation: string; readonly platform: PublicPlatformErrorDetail | null; readonly retryability: 'never' | 'caller-decides'; } export interface CleanupFailure { readonly resourceKind: string; readonly error: NormalizedBleError; } export interface CleanupRecord { readonly state: 'released' | 'release-failed'; readonly failures: readonly CleanupFailure[]; } type CleanupLike = BackendCleanupRecord | CleanupRecord; type NormalizedErrorLike = BackendNormalizedBleError | NormalizedBleError; type PlatformErrorLike = BackendPlatformErrorDetail | PublicPlatformErrorDetail; /** Projects an internal cleanup result without exposing backend brands. */ export declare function toPublicCleanupRecord(record: CleanupLike): CleanupRecord; export declare function toPublicNormalizedError(error: NormalizedErrorLike): NormalizedBleError; /** Deep-copies platform metadata and removes backend-only byte brands. */ export declare function toPublicPlatformErrorDetail(platform: PlatformErrorLike | null | undefined): PublicPlatformErrorDetail | null; export {}; //# sourceMappingURL=cleanup.d.ts.map