import type { DeviceDefinitionV1, WorldDeviceDefinitionResolver } from './devices.js'; export interface SealedDeviceDefinitionPin { packageId: string; version: string; manifestCid: string; } /** One authored Device definition sealed into an authenticated World session. */ export interface SealedDeviceDefinitionProjection { definition: DeviceDefinitionV1; /** SHA-256 of the canonical JSON representation of `definition`. */ definitionChecksumSha256: string; /** Session expiry as Unix epoch seconds. */ expiresAtEpochSeconds: number; /** Exact immutable Continuum identity retained separately from the definition digest. */ pin: SealedDeviceDefinitionPin; } export interface SealedDeviceDefinitionResolverOptions { /** Injected for runtimes without Web Crypto and for deterministic tests. */ sha256?: (bytes: ArrayBuffer) => Promise; /** Current Unix time in milliseconds. */ now?: () => number; } export interface SealedDeviceDefinitionResolver extends WorldDeviceDefinitionResolver { dispose(): void; } /** Validate, clone, and freeze the checksum-bound authored projection without resolving it. */ export declare function normalizeSealedDeviceDefinitionProjection(value: unknown): SealedDeviceDefinitionProjection | null; /** * Adapt a single server-sealed trial projection to WorldDeviceHost. * * This never resolves inventory, follows mutable package aliases, fetches * source, or converts room IR back into an authored Device definition. */ export declare function createSealedDeviceDefinitionResolver(projection: SealedDeviceDefinitionProjection, options?: SealedDeviceDefinitionResolverOptions): SealedDeviceDefinitionResolver;