import { ModuleDesc, ModuleName, ModuleEventMap, ModuleCmdMap, CmdFun } from '../types/protocol';
import { UploadGadgetOptions, UploadBlockOptions, Progress, GadgetPlatform } from '../types/upload';
export declare enum EventEnum {
    progress = "progress"
}
export interface EventMap extends ModuleEventMap<EventEnum> {
    progress: {
        type: '';
        params: Progress;
    };
}
export declare enum CmdEnum {
    uploadGadget = "Upload.uploadGadget",
    uploadGadgetPlugin = "Upload.uploadGadgetPlugin",
    uploadGadgetNav = "Upload.uploadGadgetNav",
    uploadBlock = "Upload.uploadBlock",
    gadgetLatestVersion = "Upload.gadgetLatestVersion",
    gadgetPluginLatestVersion = "Upload.gadgetPluginLatestVersion",
    blockLatestVersion = "Upload.blockLatestVersion",
    uploadH5Offline = "Upload.h5Offline",
    getH5OfflineMeta = "Upload.getH5OfflineMeta"
}
type CmdUploadGadget = (m: ModuleName.upload, cmd: CmdEnum.uploadGadget, options: UploadGadgetOptions) => Promise<{
    url: string;
} | void>;
type CmdUploadGadgetPlugin = (m: ModuleName.upload, cmd: CmdEnum.uploadGadgetPlugin, options: UploadGadgetOptions) => Promise<{
    url: string;
} | void>;
type CmdUploadGadgetNav = (m: ModuleName.upload, cmd: CmdEnum.uploadGadgetNav, options: UploadGadgetOptions) => Promise<{
    url: string;
} | void>;
type CmdUploadBlock = (m: ModuleName.upload, cmd: CmdEnum.uploadBlock, options: UploadBlockOptions) => Promise<{
    url: string;
}>;
type CmdGadgetLatestVersion = (m: ModuleName.upload, cmd: CmdEnum.gadgetLatestVersion, options: {
    compilePath: string;
}) => Promise<{
    [GadgetPlatform.Mobile]: string;
    [GadgetPlatform.PC]: string;
    ['mobile-nav']: string;
}>;
type CmdGadgetPluginLatestVersion = (m: ModuleName.upload, cmd: CmdEnum.gadgetPluginLatestVersion, options: {
    compilePath: string;
}) => Promise<{
    latestVersion: string;
}>;
type CmdBlockLatestVersion = (m: ModuleName.upload, cmd: CmdEnum.blockLatestVersion, options: {
    compilePath: string;
    blockTypeId: string;
}) => Promise<{
    libVersion: string;
    latestVersion: string;
} | void>;
type CmdUploadH5Offline = (m: ModuleName.upload, cmd: CmdEnum.uploadH5Offline, options: {
    appId: string;
    version: string;
    desc: string;
    projectPath: string;
    extConfig: {};
}) => Promise<{
    data: any;
}>;
type CmdGetH5OfflineMeta = (m: ModuleName.upload, cmd: CmdEnum.getH5OfflineMeta, options: {
    appId: string;
}) => Promise<{
    pkg_id: number;
    latest_version: string;
    desc: string;
}>;
export type Command = CmdUploadGadget & CmdUploadGadgetPlugin & CmdUploadGadgetNav & CmdUploadBlock & CmdBlockLatestVersion & CmdGadgetLatestVersion & CmdGadgetPluginLatestVersion & CmdUploadH5Offline & CmdGetH5OfflineMeta;
export interface CmdMap extends ModuleCmdMap<CmdEnum> {
    [CmdEnum.uploadGadget]: CmdFun<CmdUploadGadget>;
    [CmdEnum.uploadGadgetPlugin]: CmdFun<CmdUploadGadgetPlugin>;
    [CmdEnum.uploadBlock]: CmdFun<CmdUploadBlock>;
    [CmdEnum.gadgetLatestVersion]: CmdFun<CmdGadgetLatestVersion>;
    [CmdEnum.gadgetPluginLatestVersion]: CmdFun<CmdGadgetPluginLatestVersion>;
    [CmdEnum.blockLatestVersion]: CmdFun<CmdBlockLatestVersion>;
    [CmdEnum.uploadH5Offline]: CmdFun<CmdUploadH5Offline>;
    [CmdEnum.getH5OfflineMeta]: CmdFun<CmdGetH5OfflineMeta>;
}
export declare const UploadDesc: ModuleDesc<EventMap, CmdMap, ModuleName.account | ModuleName.compile | ModuleName.storage | ModuleName.ui | ModuleName.service | ModuleName.eventTracker>;
export {};
