/// <reference types="node" />
import { AbstractBroker } from '../AbstractBroker';
import { Server as SocketServer, ServerOptions } from 'socket.io';
import { RouteMapper, RequestMapper } from '../IBroker';
import { Action } from '../../server/types';
import { Server as HttpServer } from 'http';
export declare type SocketIOConfig = number | ServerOptions | HttpServer;
export declare class SocketIOBroker extends AbstractBroker<SocketIOConfig> {
    name: string;
    private server;
    construct(): void;
    getConnection(): SocketServer;
    protected routeMapper: RouteMapper;
    onDisconnected(cb: (action: Action) => any): void;
    protected requestMapper: RequestMapper;
    /**
     * Start listening
     */
    start(): Promise<void>;
}
