import { Container } from './Container'; /** * Inversion of control (IoC) container that runs as a system process. * It processes command line arguments and handles unhandled exceptions and Ctrl-C signal * to gracefully shutdown the container. * * ### Command line arguments ### * - --config / -c path to JSON or YAML file with container configuration (default: "./config/config.yml") * - --param / --params / -p value(s) to parameterize the container configuration * - --help / -h prints the container usage help * * @see [[Container]] * * ### Example ### * * let container = new ProcessContainer(); * container.addFactory(new MyComponentFactory()); * * container.run(process.args); */ export declare class ProcessContainer extends Container { protected _configPath: string; /** * Creates a new instance of the container. * * @param name (optional) a container name (accessible via ContextInfo) * @param description (optional) a container description (accessible via ContextInfo) */ constructor(name?: string, description?: string); private getConfigPath; private getParameters; private showHelp; private printHelp; private captureErrors; private captureExit; /** * Runs the container by instantiating and running components inside the container. * * It reads the container configuration, creates, configures, references and opens components. * On process exit it closes, unreferences and destroys components to gracefully shutdown. * * @param args command line arguments */ run(args: string[]): void; }