///
import { Server } from "../../../../server";
import { WS2PConnection } from "./WS2PConnection";
import { GlobalFifoPromise } from "../../../service/GlobalFifoPromise";
import * as events from "events";
import { WS2PMessageHandler } from "./impl/WS2PMessageHandler";
export declare class WS2PServer extends events.EventEmitter {
private server;
private host;
private port;
private fifo;
private shouldAcceptConnection;
keyPriorityLevel: (pubkey: string, privilegedKeys: string[]) => Promise;
private wss;
private connections;
private synConnections;
private constructor();
get maxLevel2Peers(): number;
getConnexions(): WS2PConnection[];
getConnexionsForSync(): WS2PConnection[];
countConnexions(): number;
private listenToWebSocketConnections;
removeExcessIncomingConnections(): Promise;
removeDuplicateConnections(): Promise;
removeLowPriorityConnection(privilegedKeys: string[]): Promise;
private removeConnection;
close(): Promise;
getConnection(pubkeyOfConnection: string): Promise;
static bindOn(server: Server, host: string, port: number, fifo: GlobalFifoPromise, shouldAcceptConnection: (pubkey: string, isSync: boolean, syncConnectedPubkeys: string[], connectedPubkeys: string[]) => Promise, keyPriorityLevel: (pubkey: string, privilegedKeys: string[]) => Promise, messageHandler: WS2PMessageHandler): Promise;
}