import { Client } from './Client';
import { DisconnectReason, Task } from './Commander';
import { Validator } from './Validator';
import { TransportType } from './Transport';
import { Serializer } from './Serializer';
export interface ServiceOptions {
    commands?: Map<string, Task>;
    validator: Validator;
    serializer: Serializer;
}
export interface Service {
    name: string;
    transport: TransportType;
    onConnect(client: Client): Promise<void>;
    onDisconnect(client: Client, reason: DisconnectReason): Promise<void>;
    onReady(client: Client): Promise<void>;
    onListening(host: string, port: number): Promise<void>;
    onError(error: Error): Promise<void>;
    onClose(): Promise<void>;
}
