import type { PeerConfigPayload, PeerHelloPayload, PeerRegistryEvent, RegisteredPeer, RegisterPeerResult, UpdatePeerConfigResult } from "./peer-types.js";
export declare class PeerRegistry {
    private readonly peersById;
    private readonly peerIdsBySocketId;
    private readonly listeners;
    register(socketId: string, hello: PeerHelloPayload, agentId: string): RegisterPeerResult;
    updateConfigBySocketId(socketId: string, config: PeerConfigPayload): UpdatePeerConfigResult;
    unregisterBySocketId(socketId: string): RegisteredPeer | undefined;
    get(peerId: string): RegisteredPeer | undefined;
    getBySocketId(socketId: string): RegisteredPeer | undefined;
    list(): RegisteredPeer[];
    size(): number;
    subscribe(listener: (event: PeerRegistryEvent) => void): () => void;
    private emit;
}
//# sourceMappingURL=peer-registry.d.ts.map