/// <reference types="node" />
import { StatsSink } from "../stats/StatsSink";
import { IService } from "../Service";
import { StrictEventEmitter } from "strict-event-emitter-types";
import { EventEmitter } from "events";
interface SyncProxyServiceEvents {
    socketConnected: {
        path: string;
        socketId: number;
        userAgent: string;
    };
    socketDisconnected: {
        path: string;
        socketId: number;
        userAgent: string;
    };
}
declare const SyncProxyService_base: new () => StrictEventEmitter<EventEmitter, SyncProxyServiceEvents, SyncProxyServiceEvents, "addEventListener" | "removeEventListener", "removeListener" | "on" | "addListener" | "once" | "emit">;
export declare class SyncProxyService extends SyncProxyService_base implements IService {
    stats: StatsSink;
    private logger;
    private server;
    private backendPromises;
    private connectionsCounter;
    private activeConnectionsGauge;
    private connectionDurationHistogram;
    private backendConnectionErrorCounter;
    private start;
    private stop;
    private setLogger;
    private syncMasterChanged;
    private closeBackend;
    private parseTokenAndGetLabel;
    private nextSocketID;
    private websocketHandler;
    private getBackend;
    private enforceMinimumProtocolVersion;
}
export {};
