import { ModuleDesc, ModuleName, ModuleEventMap, ModuleCmdMap, CmdFun } from '../types/protocol';
import { IdeSdkInfo, AppType, SDKInfo } from '../types/commonData';
export declare enum EventEnum {
    Finish = "JSSDK.Finish"
}
export interface EventMap extends ModuleEventMap<EventEnum> {
    [EventEnum.Finish]: {
        type: '';
        params: Pick<IdeSdkInfo, Exclude<keyof IdeSdkInfo, 'versionList'>>;
    };
}
export declare enum CmdEnum {
    Update = "JSSDK.Update",
    ResolveSDKPath = "JSSDK.ResolveSDKPath",
    Init = "JSSDK.Init",
    DownloadDebuggerJSSDK = "JSSDK.DownloadDebuggerJSSDK",
    GetSdkList = "JSSDK.GetSdkList",
    GetPreloadPath = "JSSDK.GetPreloadPath"
}
type CmdUpdate = (m: ModuleName.jssdk, cmd: CmdEnum.Update, appType: AppType, compilePath: string, version: string) => Promise<void>;
type CmdResolvePath = (m: ModuleName.jssdk, cmd: CmdEnum.ResolveSDKPath, version: string, appType: AppType) => string;
type CmdInit = (m: ModuleName.jssdk, cmd: CmdEnum.Init, appType: AppType, compilePath: string) => Promise<string>;
type CmdDownloadDebuggerJSSDK = (m: ModuleName.jssdk, cmd: CmdEnum.DownloadDebuggerJSSDK, appType: AppType, url: string) => Promise<{
    path: string;
}>;
type CmdGetSdkList = (m: ModuleName.jssdk, cmd: CmdEnum.GetSdkList, appType: AppType) => Promise<SDKInfo[]>;
type CmdGetGetPreloadPath = (m: ModuleName.jssdk, cmd: CmdEnum.GetPreloadPath) => string;
export type Command = CmdUpdate & CmdResolvePath & CmdInit & CmdDownloadDebuggerJSSDK & CmdGetSdkList & CmdGetGetPreloadPath;
export interface CmdMap extends ModuleCmdMap<CmdEnum> {
    [CmdEnum.Update]: CmdFun<CmdUpdate>;
    [CmdEnum.ResolveSDKPath]: CmdFun<CmdResolvePath>;
    [CmdEnum.Init]: CmdFun<CmdInit>;
    [CmdEnum.DownloadDebuggerJSSDK]: CmdFun<CmdDownloadDebuggerJSSDK>;
    [CmdEnum.GetSdkList]: CmdFun<CmdGetSdkList>;
    [CmdEnum.GetPreloadPath]: CmdFun<CmdGetGetPreloadPath>;
}
export declare const JSSDKDesc: ModuleDesc<EventMap, CmdMap, ModuleName>;
export {};
