import { WebSocketServer as WSServer, WebSocket } from 'ws';
import { MiraServer } from '.';
interface LibraryClient {
    [libraryId: string]: WebSocket[];
}
export declare class MiraWebsocketServer {
    port: number | undefined;
    libraryClients: LibraryClient;
    wss?: WSServer;
    backend: MiraServer;
    constructor(backend: MiraServer);
    start(port: number): Promise<void>;
    broadcastToClients(eventName: string, eventData: Record<string, any>): void;
    getWsClientById(libraryId: string, clientId: string): WebSocket | undefined;
    setClientFields(libraryId: string, clientId: string, fields: Record<string, any>): void;
    getClientFields(libraryId: string, clientId?: string): Record<string, any> | undefined;
    showDialogToWeboscket(ws: WebSocket, data: Record<string, any>): void;
    sendToWebsocket(ws: WebSocket, data: Record<string, any>): void;
    broadcastPluginEvent(eventName: string, data: Record<string, any>): Promise<boolean>;
    broadcastLibraryEvent(libraryId: string, eventName: string, data: Record<string, any>): void;
    stop(): Promise<void>;
    private handleConnection;
    private handleMessage;
    private registerClient;
    private unregisterClient;
    private getTotalConnectionCount;
}
export {};
//# sourceMappingURL=WebSocketServer.d.ts.map