///
///
import { EventEmitter } from 'events';
import { Socket } from 'socket.io';
import { ServerStatus } from '../shared/types/common';
import { uuid } from '../shared/types/base';
import { JobOptProxy } from '../shared/types/client';
import { Job } from '../job';
import { Readable } from 'stream';
import { netStreamInputs } from '../shared/types/server';
export declare class SocketRegistry extends EventEmitter {
private registry;
private server;
private port;
constructor(port: number);
registerClient(socket: Socket): string;
registerJob(socket: Socket, jobID: uuid): void;
removeClient(clientID: uuid): void;
removeJob(jobID: uuid): void;
broadcast(status: ServerStatus): void;
}
export declare function startSocketServer(port: number): SocketRegistry;
export declare function socketPull(job: Job, stdoutStreamOverride?: Promise, stderrStreamOverride?: Promise): void;
export declare function bouncer(jobID: uuid, socket: Socket): void;
export declare function granted(jobOptProxy: JobOptProxy, jobID: uuid, socket: Socket): Promise;
export declare function openBar(): void;