import { CrdtType, Permission } from "loro-protocol"; //#region src/server/simple-server.d.ts interface SimpleServerConfig { port: number; host?: string; saveInterval?: number; onLoadDocument?: (roomId: string, crdtType: CrdtType) => Promise; onSaveDocument?: (roomId: string, crdtType: CrdtType, data: Uint8Array) => Promise; /** Map join payload (`auth`) to permission; return null to reject. */ authenticate?: (roomId: string, crdtType: CrdtType, auth: Uint8Array) => Promise; } declare class SimpleServer { private wss?; private rooms; private clients; private saveTimer?; private config; private static readonly DEFAULT_SAVE_INTERVAL; constructor(config: SimpleServerConfig); start(): Promise; stop(): Promise; private gracefulCloseWebSocket; private waitForSocketDrain; private toUint8Array; private handleMessage; private handleJoinRequest; private handleDocUpdate; private handleFragmentHeader; private handleFragment; private handleLeave; private handleDisconnect; private getOrCreateRoomDocument; private sendJoinError; private sendMessage; private newBatchId; private sendAck; private broadcastToRoom; private hasOtherClientsInRoom; private getRoomKey; private parseRoomKey; private saveAllDirtyDocuments; } //#endregion export { SimpleServer, type SimpleServerConfig }; //# sourceMappingURL=index.d.cts.map