import type { PeerId, SyncMessage, SyncMessageHandler, SyncTransport } from './types.js';
import { type SyncRoomAppendRejection, type SyncRoomAppendResult } from './room-core.js';
export type MemorySyncRoomAppendRejection = SyncRoomAppendRejection;
export type MemorySyncRoomAppendResult = SyncRoomAppendResult;
/**
 * In-process room relay that models a PartyKit room for sync tests.
 *
 * The room keeps a canonical catch-up log, asks clients for missing ops,
 * serves catch-up requests, and broadcasts newly accepted ops.
 */
export declare class MemorySyncRoom {
    private core;
    private transports;
    constructor(roomId?: string, roomName?: string);
    connectPeer(peerId: string, peerName?: string): MemoryRoomTransport;
    disconnectPeer(peerId: string): void;
    getRoomPeer(): PeerId;
    peersFor(peerId: string): PeerId[];
    getOps(): import("../index.js").VcsOp[];
    getOpCount(): number;
    receive(fromPeerId: string, message: SyncMessage): Promise<void>;
    private deliver;
}
export declare class MemoryRoomTransport implements SyncTransport {
    private room;
    private peerId;
    private peerName;
    private handlers;
    constructor(room: MemorySyncRoom, peerId: string, peerName?: string);
    send(peerId: string, message: SyncMessage): Promise<void>;
    onMessage(handler: SyncMessageHandler): void;
    peers(): PeerId[];
    getPeerId(): string;
    getPeerName(): string;
    deliver(message: SyncMessage): Promise<void>;
}
//# sourceMappingURL=memory-room.d.ts.map