import { EventEmitter } from 'events';
interface MultiPeerManagerOptions {
    socket: any;
    authHash: string;
    sharedKey: string;
    maxConnections: number;
    log: (msg: string, type?: string) => void;
}
export declare class MultiPeerManager extends EventEmitter {
    private peers;
    private sessionGenerations;
    private pendingSessions;
    private maxConnections;
    private socket;
    private authHash;
    private sharedKey;
    private log;
    private heartbeatInterval;
    constructor(options: MultiPeerManagerOptions);
    private setupSocketHandlers;
    private handleOffer;
    private startHeartbeat;
    private teardownPeer;
    private ts;
    private getActivePeerCount;
    sendToPeer(sessionId: string, packet: any): boolean;
    broadcast(packet: any, excludeSessionId?: string): void;
    /** Returns sessionIds of all currently active (current-generation) peers. */
    getPeers(): string[];
    getPeerCount(): number;
    getMaxConnections(): number;
    disconnectPeer(sessionId: string): void;
    disconnectAll(): void;
    close(): void;
}
export {};
