/**
 * 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<void>;
    onMessage(handler: SyncMessageHandler): void;
    /**
     * Receive a message (called by the HTTP server handler).
     */
    receiveMessage(message: SyncMessage): Promise<void>;
    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