import SessionComponent from '../components/session';
import ServerComponent from '../components/server';
import BackendSessionComponent from '../components/backendSession';
import ConnectorComponent from '../components/connector';
import MasterComponent from '../components/master';
import ProxyComponent from '../components/proxy';
import RemoteComponent from '../components/remote';
import ChannelComponent from '../components/channel';
import PushSchedulerComponent from '../components/pushScheduler';
import ProtobufComponent from '../components/protobuf';
import DictionaryComponent from '../components/dictionary';
import ConnectionComponent from '../components/connection';
export declare type IServerId = string;
export interface IServerInfo {
    id: IServerId;
    status?: number;
    host: string;
    port: number;
    clientPort?: number;
    type: string;
    frontend?: boolean;
    maxNum?: number;
    maxConn?: number;
}
export interface IServer {
    [key: string]: IServerInfo;
}
export interface IServerMap {
    [key: string]: IServerInfo[];
}
export declare type TServerType = string[];
export interface ILogger {
    [key: string]: Function;
}
export declare type TLoaded = object[];
export interface IComponents {
    __backendSession__: BackendSessionComponent;
    __channel__: ChannelComponent;
    __pushScheduler__: PushSchedulerComponent;
    __connection__: ConnectionComponent;
    __connector__: ConnectorComponent;
    __dictionary__: DictionaryComponent;
    __protobuf__: ProtobufComponent;
    __master__: MasterComponent;
    __proxy__: ProxyComponent;
    __remote__: RemoteComponent;
    __server__: ServerComponent;
    __session__: SessionComponent;
}
export interface ISettings {
    [key: string]: any;
}
