import { type FinalRestScope, FINAL_REST_REPLY, type FinalRestGrant, type FinalRestReply, type GroupRestSnapshotMessage, type RoomVarValue, type EntityStateBatchEntry } from './multiplayer-contract/index.js'; /** Room-scoped client state. Retries resend frozen bytes, never resample a settled body. */ export declare class FinalRestClient { private readonly send; private readonly nextSequence; private request; private readonly claiming; private supported; private moduleSupported; private generations; private lifecycle; private readonly retiredGenerations; private readonly snapshotGenerations; private readonly moduleLifecycles; private dead; private readonly transactions; private readonly revoked; private readonly pending; constructor(send: (type: string, payload: unknown) => void, nextSequence: () => number); capability(payload: unknown): void; receive(reply: FinalRestReply): void; drop(): void; reconnect(): void; acceptSnapshot(snapshot: GroupRestSnapshotMessage): boolean; invalidateModule(moduleId: string): void; /** null means fenced; undefined is the unchanged legacy path. */ upload(id: string, moduleId?: string): string | null | undefined; private rpc; claim(action: string, group: string, args?: Record, address?: FinalRestScope, engagementEpoch?: number): Promise; commit(transactionId: string, states: readonly EntityStateBatchEntry[]): Promise; } export { FINAL_REST_REPLY };