/** * HTTP Sync Transport * * Implements SyncTransport over HTTP for network-based peer sync. * Uses a simple JSON REST protocol: * POST /sync/message — send a sync message * GET /sync/peers — list connected peers * * The server side is a lightweight Bun HTTP server. * The client side uses fetch() for outbound messages. * * @module trellis/sync */ import type { SyncTransport, SyncMessage, SyncMessageHandler, PeerId } from './types.js'; export declare class HttpSyncTransport implements SyncTransport { private localPeerId; private peerUrls; private messageHandler; private knownPeers; constructor(localPeerId: string); /** * Add a remote peer by URL (e.g. "http://192.168.1.10:4200"). */ addPeer(peerId: string, url: string, name?: string): void; /** * Remove a remote peer. */ removePeer(peerId: string): void; send(peerId: string, message: SyncMessage): Promise; onMessage(handler: SyncMessageHandler): void; /** * Receive a message (called by the HTTP server handler). */ receiveMessage(message: SyncMessage): Promise; peers(): PeerId[]; getLocalPeerId(): string; } export interface HttpSyncServerConfig { port: number; transport: HttpSyncTransport; } /** * Create a Bun-compatible HTTP request handler for sync messages. * Can be used with Bun.serve() or as middleware. */ export declare function createSyncHandler(transport: HttpSyncTransport): (req: Request) => Response | null; //# sourceMappingURL=http-transport.d.ts.map