import { AlternateModule } from '../types/module';
import { AlternateContext } from '../runtime/context';
import { AlternateAdapterKey, AlternateAdapterOf } from '../types/adapters';
export declare class ModuleRegistry {
    private modules;
    private adapters;
    registerModule(module: AlternateModule, ctx: AlternateContext): void;
    getAdapter<K extends AlternateAdapterKey>(key: K): AlternateAdapterOf<K> | undefined;
    runLifecycle(hook: keyof AlternateModule, ctx: AlternateContext): Promise<void>;
}
