import { ModuleName, ModuleEventMap, EventData } from '../types/protocol';
import { EventEnum as StorageEventEnum, EventMap as StorageEventMap, Command as StorageCmd, CmdEnum as StorageCmdEnum } from './storage';
import { EventEnum as UIEventEnum, EventMap as UIEventMap, Command as UICmd, CmdEnum as UICmdEnum } from './ui';
import { EventEnum as AccountEventEnum, EventMap as AccountEventMap, Command as AccountCmd, CmdEnum as AccountCmdEnum } from './account';
import { EventEnum as CompileEventEnum, EventMap as CompileEventMap, Command as CompileCmd, CmdEnum as CompileCmdEnum } from './compile';
import { EventEnum as JSSDKEventEnum, EventMap as JSSDKEventMap, Command as JSSDKCmd, CmdEnum as JSSDKCmdEnum } from './jssdk';
import { EventEnum as PerformanceEventEnum, EventMap as PerformanceEventMap, Command as PerformanceCmd, CmdEnum as PerformanceCmdEnum } from './performance';
import { EventEnum as PreviewEventEnum, EventMap as PreviewEventMap, Command as PreviewCmd, CmdEnum as PreviewCmdEnum } from './preview';
import { EventEnum as UploadEventEnum, EventMap as UploadEventMap, Command as UploadCmd, CmdEnum as UploadCmdEnum } from './upload';
import { EventEnum as CreatorEventEnum, EventMap as CreatorEventMap, Command as CreatorCmd, CmdEnum as CreatorCmdEnum } from './creator';
import { EventEnum as SimulatorEventEnum, EventMap as SimulatorEventMap, Command as SimulatorCmd, CmdEnum as SimulatorCmdEnum } from './simulator';
import { EventEnum as DevtoolsEventEnum, EventMap as DevtoolsEventMap, Command as DevtoolsCmd, CmdEnum as DevtoolsCmdEnum } from './devtools';
import { EventEnum as ServiceEventEnum, EventMap as ServiceEventMap, Command as ServiceCmd, CmdEnum as ServiceCmdEnum } from './service';
import { EventEnum as FeedbackEventEnum, EventMap as FeedbackEventMap, Command as FeedbackCmd, CmdEnum as FeedbackCmdEnum } from './feedback';
import { EventEnum as EventTrackerEventEnum, EventMap as EventTrackerEventMap, Command as EventTrackerCmd, CmdEnum as EventTrackerCmdEnum } from './eventTracker';
import { EventEnum as SnifferEventEnum, EventMap as SnifferEventMap, Command as SnifferCmd, CmdEnum as SnifferCmdEnum } from './sniffer';
import { EventEnum as AutoEventEnum, EventMap as AutoEventMap, Command as AutoCmd, CmdEnum as AutoCmdEnum } from './auto';
import { EventEnum as DebuggerEventEnum, EventMap as DebuggerEventMap, Command as DebuggerCmd, CmdEnum as DebuggerCmdEnum } from './debugger';
import { EventEnum as DebuggerBlockEventEnum, EventMap as DebuggerBlockEventMap, Command as DebuggerBlockCmd, CmdEnum as DebuggerBlockCmdEnum } from './debuggerBlock';
import { EventEnum as StaticEventEnum, EventMap as StaticEventMap, Command as StaticCmd, CmdEnum as StaticCmdEnum } from './static';
export { ModuleName, StorageEventEnum, StorageCmdEnum, UIEventEnum, UICmdEnum, AccountEventEnum, AccountCmdEnum, CompileEventEnum, CompileCmdEnum, JSSDKEventEnum, JSSDKCmdEnum, SimulatorEventEnum, SimulatorCmdEnum, PerformanceEventEnum, PerformanceCmdEnum, PreviewEventEnum, PreviewCmdEnum, UploadEventEnum, UploadCmdEnum, CreatorEventEnum, CreatorCmdEnum, DevtoolsEventEnum, DevtoolsCmdEnum, ServiceEventEnum, ServiceCmdEnum, FeedbackEventEnum, FeedbackCmdEnum, EventTrackerEventEnum, EventTrackerCmdEnum, SnifferCmdEnum, SnifferEventEnum, AutoCmdEnum, AutoEventEnum, DebuggerCmdEnum, DebuggerBlockCmdEnum, DebuggerEventEnum, DebuggerBlockEventEnum, StaticCmdEnum, StaticEventEnum, };
export interface ModuleCmdMap {
    [ModuleName.storage]: StorageCmdEnum;
    [ModuleName.account]: AccountCmdEnum;
    [ModuleName.compile]: CompileCmdEnum;
    [ModuleName.creator]: CreatorCmdEnum;
    [ModuleName.devtools]: DevtoolsCmdEnum;
    [ModuleName.simulator]: SimulatorCmdEnum;
    [ModuleName.ui]: UICmdEnum;
    [ModuleName.jssdk]: JSSDKCmdEnum;
    [ModuleName.performance]: PerformanceCmdEnum;
    [ModuleName.preview]: PreviewCmdEnum;
    [ModuleName.upload]: UploadCmdEnum;
    [ModuleName.service]: ServiceCmdEnum;
    [ModuleName.sniffer]: SnifferCmdEnum;
    [ModuleName.feedback]: FeedbackCmdEnum;
    [ModuleName.eventTracker]: EventTrackerCmdEnum;
    [ModuleName.auto]: AutoCmdEnum;
    [ModuleName.debugger]: DebuggerCmdEnum;
    [ModuleName.debuggerBlock]: DebuggerBlockCmdEnum;
    [ModuleName.static]: StaticCmdEnum;
    Common: unknown;
}
interface NS {
    [ModuleName.storage]: StorageEventMap;
    [ModuleName.account]: AccountEventMap;
    [ModuleName.compile]: CompileEventMap;
    [ModuleName.creator]: CreatorEventMap;
    [ModuleName.devtools]: DevtoolsEventMap;
    [ModuleName.simulator]: SimulatorEventMap;
    [ModuleName.ui]: UIEventMap;
    [ModuleName.jssdk]: JSSDKEventMap;
    [ModuleName.performance]: PerformanceEventMap;
    [ModuleName.preview]: PreviewEventMap;
    [ModuleName.upload]: UploadEventMap;
    [ModuleName.service]: ServiceEventMap;
    [ModuleName.feedback]: FeedbackEventMap;
    [ModuleName.eventTracker]: EventTrackerEventMap;
    [ModuleName.sniffer]: SnifferEventMap;
    [ModuleName.auto]: AutoEventMap;
    [ModuleName.debugger]: DebuggerEventMap;
    [ModuleName.debuggerBlock]: DebuggerBlockEventMap;
    [ModuleName.static]: StaticEventMap;
}
type Handler<M extends ModuleEventMap, K extends keyof M> = (d: M[K] extends EventData ? M[K]['params'] : any) => void;
export interface AddEventListener {
    <M extends ModuleName, EM extends NS[M], K extends keyof EM>(moduleName: M, eventName: K, handler: Handler<EM, K>): () => void;
}
type X = Error;
type Command<M extends ModuleName, S extends ModuleName, F extends ((...args: any[]) => any) | Error> = S extends M ? F : X;
export type Commands<M extends ModuleName> = Command<M, ModuleName.storage, StorageCmd> & Command<M, ModuleName.ui, UICmd> & Command<M, ModuleName.account, AccountCmd> & Command<M, ModuleName.compile, CompileCmd> & Command<M, ModuleName.creator, CreatorCmd> & Command<M, ModuleName.devtools, DevtoolsCmd> & Command<M, ModuleName.simulator, SimulatorCmd> & Command<M, ModuleName.jssdk, JSSDKCmd> & Command<M, ModuleName.performance, PerformanceCmd> & Command<M, ModuleName.preview, PreviewCmd> & Command<M, ModuleName.upload, UploadCmd> & Command<M, ModuleName.service, ServiceCmd> & Command<M, ModuleName.feedback, FeedbackCmd> & Command<M, ModuleName.eventTracker, EventTrackerCmd> & Command<M, ModuleName.sniffer, SnifferCmd> & Command<M, ModuleName.auto, AutoCmd> & Command<M, ModuleName.debugger, DebuggerCmd> & Command<M, ModuleName.debuggerBlock, DebuggerBlockCmd> & Command<M, ModuleName.static, StaticCmd>;
declare const _default: {
    Storage: import("../types/protocol").ModuleDesc<StorageEventMap, import("./storage").CmdMap, ModuleName.service>;
    UI: import("../types/protocol").ModuleDesc<UIEventMap, import("./ui").CmdMap, never>;
    Account: import("../types/protocol").ModuleDesc<AccountEventMap, import("./account").CmdMap, ModuleName.storage | ModuleName.ui | ModuleName.compile | ModuleName.service | ModuleName.eventTracker | ModuleName.static>;
    Compile: import("../types/protocol").ModuleDesc<CompileEventMap, import("./compile").CmdMap, ModuleName.storage | ModuleName.ui | ModuleName.eventTracker | ModuleName.sniffer>;
    Creator: import("../types/protocol").ModuleDesc<CreatorEventMap, import("./creator").CmdMap, ModuleName.storage | ModuleName.ui | ModuleName.account | ModuleName.service | ModuleName.eventTracker | ModuleName.static>;
    Devtools: import("../types/protocol").ModuleDesc<DevtoolsEventMap, import("./devtools").CmdMap, ModuleName.storage | ModuleName.ui | ModuleName.simulator | ModuleName.account | ModuleName.compile | ModuleName.performance | ModuleName.service | ModuleName.eventTracker | ModuleName.sniffer | ModuleName.debugger>;
    Simulator: import("../types/protocol").ModuleDesc<SimulatorEventMap, import("./simulator").CmdMap, ModuleName.storage | ModuleName.ui | ModuleName.account | ModuleName.compile | ModuleName.creator | ModuleName.jssdk | ModuleName.preview | ModuleName.upload | ModuleName.service | ModuleName.feedback | ModuleName.eventTracker | ModuleName.sniffer | ModuleName.debugger>;
    JsSdk: import("../types/protocol").ModuleDesc<JSSDKEventMap, import("./jssdk").CmdMap, ModuleName>;
    Performance: import("../types/protocol").ModuleDesc<PerformanceEventMap, import("./performance").CmdMap, ModuleName.storage | ModuleName.ui | ModuleName.compile | ModuleName.jssdk | ModuleName.preview | ModuleName.service | ModuleName.eventTracker>;
    Preview: import("../types/protocol").ModuleDesc<PreviewEventMap, import("./preview").CmdMap, ModuleName.storage | ModuleName.ui | ModuleName.account | ModuleName.compile | ModuleName.service | ModuleName.eventTracker>;
    Upload: import("../types/protocol").ModuleDesc<UploadEventMap, import("./upload").CmdMap, ModuleName.storage | ModuleName.ui | ModuleName.account | ModuleName.compile | ModuleName.service | ModuleName.eventTracker>;
    Service: import("../types/protocol").ModuleDesc<ServiceEventMap, import("./service").CmdMap, ModuleName>;
    Feedback: import("../types/protocol").ModuleDesc<FeedbackEventMap, import("./feedback").CmdMap, ModuleName.storage | ModuleName.ui | ModuleName.service | ModuleName.eventTracker>;
    EventTracker: import("../types/protocol").ModuleDesc<EventTrackerEventMap, import("./eventTracker").CmdMap, ModuleName.storage>;
    sniffer: import("../types/protocol").ModuleDesc<SnifferEventMap, import("./sniffer").CmdMap, ModuleName.storage>;
    auto: import("../types/protocol").ModuleDesc<AutoEventMap, import("./auto").CmdMap, ModuleName.storage | ModuleName.ui | ModuleName.simulator | ModuleName.devtools | ModuleName.compile | ModuleName.service | ModuleName.eventTracker | ModuleName.sniffer>;
    debugger: import("../types/protocol").ModuleDesc<DebuggerEventMap, import("./debugger").CmdMap, ModuleName.storage | ModuleName.ui | ModuleName.account | ModuleName.compile | ModuleName.jssdk | ModuleName.preview | ModuleName.service | ModuleName.eventTracker>;
    debuggerBlock: import("../types/protocol").ModuleDesc<DebuggerBlockEventMap, import("./debuggerBlock").CmdMap, ModuleName.storage | ModuleName.ui | ModuleName.account | ModuleName.compile | ModuleName.jssdk | ModuleName.preview | ModuleName.service | ModuleName.eventTracker>;
    static: import("../types/protocol").ModuleDesc<StaticEventMap, import("./static").CmdMap, ModuleName.storage | ModuleName.jssdk>;
};
export default _default;
