import { ModuleDesc, ModuleName, ModuleEventMap, ModuleCmdMap, CmdFun } from '../types/protocol';
import { GadgetPlatform, GadgetPCMode } from '../types/upload';
import { ConnectFrom } from '../types/debugger';
import { AppTypeEnum } from '../types/commonData';
export declare enum CmdEnum {
    DebuggerStart = "Debugger.start",
    DebuggerStop = "Debugger.stop"
}
export declare enum EventEnum {
    DebuggerInit = "debuggerInit",
    DebuggerWaiting = "debuggerWaiting",
    DebuggerStarting = "debuggerStarting",
    DebuggerRunning = "debuggerRunning",
    DebuggerOver = "debuggerOver",
    DebuggerVersionInvalid = "debuggerVersionInvalid",
    DebugWSConnnected = "debuggerWSConnected",
    DebuggerError = "debuggerError"
}
export interface EventMap extends ModuleEventMap<EventEnum> {
    DebuggerInit: {
        type: '';
        params: {
            platform: GadgetPlatform | null;
        };
    };
    DebuggerWaiting: {
        type: '';
        params: {
            mobileDebugUrl?: string;
            host?: string;
            platform: GadgetPlatform | null;
        };
    };
    DebuggerStarting: {
        type: '';
        params: {
            platform: GadgetPlatform | null;
        };
    };
    DebuggerRunning: {
        type: '';
        params: {
            platform: GadgetPlatform | null;
        };
    };
    DebuggerOver: {
        type: '';
        params: {
            platform: GadgetPlatform | null;
        };
    };
    DebuggerWSConnnected: {
        type: '';
        params: {
            connectFrom: ConnectFrom;
            webviewId?: string;
        };
    };
    DebuggerVersionInvalid: {
        type: '';
        params: {
            platform: GadgetPlatform | null;
        };
    };
    DebuggerError: {
        type: '';
        params: {
            platform: GadgetPlatform | null;
            error: string[];
        };
    };
}
type CmdDebugStart = (m: ModuleName.debugger, cmd: CmdEnum.DebuggerStart, opts: {
    platform: GadgetPlatform;
    blockTypeId?: string;
    mode: GadgetPCMode;
    appType: AppTypeEnum;
    traceId?: string;
    compilePath: string;
}) => Promise<void>;
type CmdDebugStop = (m: ModuleName.debugger, cmd: CmdEnum.DebuggerStop, opts: {}) => void;
export type Command = CmdDebugStart & CmdDebugStop;
export interface CmdMap extends ModuleCmdMap<CmdEnum> {
    [CmdEnum.DebuggerStart]: CmdFun<CmdDebugStart>;
    [CmdEnum.DebuggerStop]: CmdFun<CmdDebugStop>;
}
export declare const DebuggerDesc: ModuleDesc<EventMap, CmdMap, ModuleName.account | ModuleName.compile | ModuleName.storage | ModuleName.ui | ModuleName.service | ModuleName.eventTracker | ModuleName.preview | ModuleName.jssdk | ModuleName.compile>;
export {};
