import { MFrameworkModule } from '../types/module';
import { MFrameworkContext } from '../runtime/context';
import { MFrameworkAdapterKey, MFrameworkAdapterMap, MFrameworkAdapterOf } from '../types/adapters';
import { MFrameworkEventBus } from '../types/events';
export declare class ModuleRegistry {
    private modules;
    private adapters;
    private bus;
    constructor(bus?: MFrameworkEventBus);
    registerModule(module: MFrameworkModule, ctx: MFrameworkContext): void;
    getAdapter<K extends MFrameworkAdapterKey>(key: K): MFrameworkAdapterOf<K> | undefined;
    registerAdapter<K extends MFrameworkAdapterKey>(key: K, adapter: MFrameworkAdapterMap[K]): void;
    runLifecycle(hook: keyof MFrameworkModule, ctx: MFrameworkContext): Promise<void>;
}
