///
import 'source-map-support/register';
import { Provider, Injector } from '@neoskop/injector';
import { Type } from '@neoskop/annotation-factory';
import * as express from 'express';
import { IModuleContext } from './factories/module-router';
import { Server } from 'http';
/**
* Bootstraping options
*/
export interface INemOptions {
/**
* Providers for bootstrapping
*/
providers?: Provider[];
/**
* Injector to create the bootstrap injector from
*/
injector?: Injector;
}
/**
* Bootstrap factory
*/
export declare function nem(options?: INemOptions): NemBootstrap;
/**
* Required providers for root injector
*
* @internal
* @hidden
*/
export declare const ROOT_PROVIDER: Provider[];
export declare class NemBootstrap {
protected options: INemOptions;
protected injector: Injector;
constructor(options: INemOptions);
bootstrap(module: Type, { app, server }?: {
app?: express.Application;
server?: Server;
}): NemBootstrappedModule;
}
/**
* The public api for the bootstrapped root module
*/
export declare class NemBootstrappedModule {
/**
* The root injector
*/
readonly injector: Injector;
/**
* The root module context
*/
readonly context: Readonly;
constructor(injector: Injector, context: Readonly);
listen(port: number, host?: string): Promise;
}