import { IncomingMessage, ServerResponse } from 'node:http'; import { Duplex } from 'node:stream'; import { CreateRpgServerTransportOptions, HandleNodeRequestOptions, RpgTransportServer, RpgTransportServerConstructor, RpgHostedRoom, RpgWebSocketConnection, RpgWebSocketRequestLike, RpgWebSocketServer, SendMapUpdateOptions, PublishMapOptions } from './types'; export declare class RpgServerTransport { private readonly serverModule; private serverContextInitialized; private partiesPath; private readonly initializeMaps; private readonly mapUpdateToken; private readonly tiledBasePaths?; private readonly rooms; private readonly servers; private readonly transport; private lastKnownHost; constructor(serverModule: RpgTransportServerConstructor, options?: CreateRpgServerTransportOptions); private ensureServerContext; getRoom(roomId: string): RpgHostedRoom | undefined; getServer(roomId: string): RpgTransportServer | undefined; private ensureRoomAndServer; private dispatchRoomRequest; fetch(request: Request | string | URL, init?: RequestInit): Promise; updateMap(mapId: string, payload: any, options?: SendMapUpdateOptions): Promise; /** Build and publish a trusted map payload to another RPGJS runtime. */ publishMap(mapId: string, options: PublishMapOptions): Promise; handleNodeRequest(req: IncomingMessage, res: ServerResponse, next?: () => void, options?: HandleNodeRequestOptions): Promise; acceptWebSocket(ws: RpgWebSocketConnection, request: RpgWebSocketRequestLike): Promise; handleUpgrade(wsServer: RpgWebSocketServer, request: IncomingMessage, socket: Duplex, head: Buffer): Promise; } export declare function createRpgServerTransport(serverModule: RpgTransportServerConstructor, options?: CreateRpgServerTransportOptions): RpgServerTransport;