import AppModule from './app-module.js';
export interface AppModuleConstructor {
    id: string;
    aliases?: string[];
    new (...args: any[]): AppModule;
}
export declare class AppModules {
    modules: {
        [K: string]: AppModule;
    };
    state: 'running' | 'stopped';
    static default: AppModules;
    output: any;
    constructor(output?: any);
    define(id: string, ModuleClass: AppModuleConstructor): void;
    config(config: any): void;
    /**
     * Support legacy API
     */
    init(arg: any): void;
    getModule(id: string): any;
    createAppCode(prefix: string, code: string): string;
    _runModuleLifecycleStep(name: string): void;
    start(): void;
    stop(): void;
    afterRun(): void;
    addModule(id: string, m: AppModule): void;
    instrumentize(method: string): any;
    dispose(): void;
}
export default AppModules;
