///
import Koa from 'koa';
import { Server } from 'http';
import { IProgram, ILogger, ISettingManager } from '@newbility/core';
export declare class Program implements IProgram {
private readonly _app;
private readonly _startup;
constructor(startup: any);
Main(): void;
protected Initialize(): Promise;
/**
* 模块启动前
*/
protected PreStartModule(): Promise | void;
/**
* 启动模块
* @param startup Startup
* @returns
*/
protected StartModule(startup: any): Promise | void;
/**
* 模块启动后
*/
protected PostStartModule(): Promise | void;
/**
* 服务启动后
*/
protected OnServerStarted(): any;
protected OnApplicationShutdown(): Promise;
protected GetApp(): Koa;
/**
* 启动服务
*/
protected StartServer(): void;
protected InitSettingManager(): Promise | void;
protected InitLogger(): Promise | void;
protected InitSysModule(): Promise;
protected GetLogger(): ILogger;
protected GetSettingManager(): ISettingManager;
protected GetPortSetting(): number;
protected RegisterAppIns(): void;
protected RegisterProcessEvent(logger?: ILogger): void;
protected RegisterCompToHttpServer(httpServer: Server): void;
}