import type { SyncMessage } from './types.js'; import { type SyncRoomSnapshot } from './room-core.js'; export interface SyncRoomServerConnection { peerId: string; send(message: SyncMessage): void | Promise; } export interface SyncRoomServerOptions { roomId?: string; roomName?: string; /** Send a welcome snapshot when a peer connects. Default: true. */ welcomeSnapshot?: boolean; welcomeSnapshotMaxOps?: number; } /** * Framework-agnostic room server wrapping {@link SyncRoomCore}. * * Use from PartyKit, Node WebSocket servers, or tests. Routes inbound sync * messages through the canonical room log and delivers responses to peers. */ export declare class SyncRoomServer { private core; private connections; private welcomeSnapshot; private welcomeSnapshotMaxOps; constructor(opts?: SyncRoomServerOptions); getRoomId(): string; getOpCount(): number; getOps(): import("../index.js").VcsOp[]; buildSnapshot(maxOps?: number): SyncRoomSnapshot; /** Register a connected peer and optionally send a welcome snapshot. */ connect(conn: SyncRoomServerConnection): Promise; disconnect(peerId: string): void; /** Route an inbound sync message from a peer. */ handleMessage(fromPeerId: string, message: SyncMessage): Promise; /** Push a tail snapshot to a peer without an inbound message. */ sendSnapshot(peerId: string, maxOps?: number): Promise; private deliverAll; } //# sourceMappingURL=sync-room-server.d.ts.map