///
import { ServerGatewayInterface } from '../ServerGatewayInterface';
import { Socket } from 'socket.io';
import { Observable } from 'rxjs';
import { SerializerInterface } from '../../Serializer/SerializerInterface';
import { SerializableAction } from '../../Redux/SerializableAction';
import { ServerGatewayMessage } from '../ValueObject/ServerGatewayMessage';
import { ServerGatewayMetadata } from '../ValueObject/ServerGatewayMetadata';
export interface ServerSocketIOGatewayMetadata extends ServerGatewayMetadata> {
client: Socket;
}
export declare type ServerSocketIOGatewayMessage = ServerGatewayMessage;
/**
* Connect to different clients, client errors will be passed to the error stream.
*/
export declare class ServerSocketIOGateway implements ServerGatewayInterface {
private readonly warnings$;
private readonly message$;
private readonly broadcastGateway;
private readonly connections$;
private readonly disconnect$;
constructor(emitter: NodeJS.EventEmitter, serializer: SerializerInterface);
emit(action: SerializableAction): Promise;
listen(): Observable;
connections(): Observable;
disconnects(): Observable;
warnings(): Observable;
}