///
import * as http from "http";
import { Router, ICache, RoomManager, RoomClass, IRoomObject, WebSocketTransport, Client, Transport, IAuthManager, IPCManager, LoadBalancer } from "./internal";
export interface IServerParams {
transport?: T;
roomCache?: ICache;
ipcManager?: IPCManager;
processId?: string | number;
auth?: IAuthManager;
path?: string;
connectionTimeout?: number;
generator?: (data?: any) => string;
}
/**
* MagX Server - Multiplayer authoritative game server
*/
export declare class Server = Transport> {
httpServer: http.Server | null;
router: Router;
transport: T | WebSocketTransport;
rooms: RoomManager;
auth: IAuthManager;
balancer: LoadBalancer;
processId: string | number;
ipcm: IPCManager;
generator: (data?: any) => string;
connectionTimeout: number;
constructor(httpServer?: http.Server, params?: IServerParams);
define(name: string, roomClass: RoomClass, params?: any): Server;
attach(httpServer: http.Server): void;
drip(): void;
close(): Promise;
}