import { AddEventListener, Commands } from '../protocol';
import ModuleClass from './Module';
import { ModuleName } from '../types/protocol';
type Module<M extends ModuleName = ModuleName> = ModuleClass<M, any, any>;
type ModuleMap = {
    [K in ModuleName]: Module<K>;
};
export default class ModuleManager {
    protected moduleMap: Map<ModuleName, Module>;
    init<M extends ModuleMap[keyof ModuleMap]>(modules: M[]): Promise<void>;
    addEventListener: AddEventListener;
    execute: Commands<ModuleName>;
}
export {};
