///
///
import { ChildProcess } from 'child_process';
import { EventEmitter } from 'events';
import { IFnTarget } from '../../fn-utils/lib/common';
import type { IClientTarget } from './lib/web_client/types';
import { TAppSailServerDetails } from '../features/appsail';
import { TSlateServerDetails } from '../features/slate';
export interface IServerDetails {
type: 'client' | 'server' | 'functions' | 'appsail' | 'slate';
target: T;
httpPort: T extends IFnTarget | IClientTarget ? number : undefined;
debugPort: T extends IFnTarget ? number : undefined;
process?: ChildProcess | EventEmitter;
isAlive: boolean | null;
restarting: boolean;
}
export type TServerTargets = {
functions: Array>;
server: Array>;
client: Array>;
appSail: Array>;
slate: Array>;
};
declare class Server {
private targetsMap;
private masterServer?;
private _addBasicFnDetails;
add(type: 'client' | 'server' | 'appsail' | 'functions' | 'slate', target: IFnTarget | TAppSailServerDetails | IClientTarget | TSlateServerDetails): void;
private startServer;
start(): Promise;
wait(): Promise;
private kill;
restart(target: IServerDetails): Promise;
stop(): Promise;
}
export default Server;