import type { EntityStateBatchMessage, GroupRestSnapshotMessage } from './messages.js'; import type { Vec3, Quat } from './state.js'; /** Additive opt-in on existing action/ping/entity channels; no manifest capability. */ export declare const FINAL_REST_REPLY = "__helix:finalRest"; /** A separate channel prevents old global consumers from applying module-local transforms. */ export declare const MODULE_FINAL_REST_SNAPSHOT = "__helix:moduleFinalRestSnapshot"; export declare const FINAL_REST_TIMEOUT_MS = 120000; /** Explicit opt-in module address. The SDK supplies runtime generation and engagement authority. */ export interface FinalRestScope { moduleId: string; } export interface FinalRestProvenance extends FinalRestScope { generation: number; engagementEpoch?: number; } export declare const sameFinalRestScope: (a?: FinalRestProvenance, b?: FinalRestProvenance) => boolean; export declare const finalRestScopeKey: (group: string, scope?: FinalRestScope) => string; export declare function validFinalRestScope(scope: unknown): scope is FinalRestProvenance | undefined; export interface FinalRestMember { id: string; epoch: number; position: Vec3; velocity: Vec3; angularVelocity: Vec3; orientation: Quat; } export interface FinalRestGrant { scope?: FinalRestProvenance; version: 1; status: 'claimed'; group: string; requestId: number; transactionId: string; members: FinalRestMember[]; } export type FinalRestReply = FinalRestGrant | { scope?: FinalRestProvenance; version: 1; status: 'rejected' | 'invalidated'; group: string; requestId: number; transactionId?: string; reason: string; entries?: Array<{ id: string; accepted: boolean; }>; } | { scope?: FinalRestProvenance; version: 1; status: 'committed'; group: string; requestId: number; transactionId: string; snapshot: GroupRestSnapshotMessage; }; export declare const finalRestId: (v: unknown) => v is string; export declare const finalRestSequence: (v: unknown) => v is number; export declare function isFinalRestClaim(v: unknown): v is { version: 1; requestId: number; group: string; scope?: FinalRestProvenance; }; /** In addition to the ordinary server shape/auth/source-time/movement gates. */ export declare function isFinalRestBatch(m: EntityStateBatchMessage): boolean;