import { IMaterialItem, IWeAppData, IPlugin, IExtraData } from '@cloudbase/lowcode-generator/lib/weapps-core';
import { BuildType, GenerateMpType, WebpackBuildCallBack, WebpackModeType } from '../types/common';
import { DEPLOY_MODE, RUNTIME } from '../../types';
import { IPlatformApp } from '@cloudbase/cals';
import { ICDN_ENDPOINTS_COFIG } from '../config';
interface IBaseAppProps {
    appKey: string;
    dependencies?: IMaterialItem[];
    publicPath?: string;
    buildTypeList: BuildType[];
    mode?: WebpackModeType;
    devTool?: string;
    watch?: boolean;
    generateMpType?: GenerateMpType;
    plugins?: IPlugin[];
    domain: string;
    extraData?: IExtraData;
}
export interface BuildAppProps extends IBaseAppProps {
    mainAppSerializeData?: IWeAppData;
    subAppSerializeDataList?: IWeAppData[];
    generateMpPath?: string;
}
export interface IBuildWedaApp extends IBaseAppProps {
    cals: IPlatformApp;
    subAppCalsList?: IPlatformApp[];
    deployOptions?: {
        mode: DEPLOY_MODE;
        mpAppId?: string;
        targetMpAppId?: string;
        version?: string;
    };
    runtime?: RUNTIME;
    ignoreInstall?: boolean;
    resourceAppId?: string;
    output?: {
        path?: string;
    };
    isBrowserMpBuilder?: boolean;
    cdnEndpoints?: ICDN_ENDPOINTS_COFIG;
    isPrivateMode?: boolean;
    endpointType?: 'tcb-api' | 'wechat-service';
    enableExpiredTag?: boolean;
}
export declare function buildWedaConfig({ output, domain, isPrivateMode, endpointType, buildTypeList, }: {
    output: Required<IBuildWedaApp['output']>;
    domain?: string;
    isPrivateMode?: boolean;
    endpointType?: IBuildWedaApp['endpointType'];
    buildTypeList?: IBuildWedaApp['buildTypeList'];
}): Promise<void>;
export declare function buildWedaApp({ cals, subAppCalsList, dependencies, appKey, runtime, ignoreInstall, buildTypeList, mode, devTool, deployOptions, generateMpType, plugins, extraData, resourceAppId, domain, output, isBrowserMpBuilder, cdnEndpoints, isPrivateMode, endpointType, enableExpiredTag, }: IBuildWedaApp, cb?: WebpackBuildCallBack): Promise<any>;
export declare function cleanComponentDir(): Promise<void>;
export declare const version: any;
export { getFiles, fileToZip, strToBuf } from '../util/generateFiles';
export { downloadZip } from '../util/net';
export { getCompileDirs } from '../util';
export default buildWedaApp;
interface INormalizeInput {
    appId?: string;
    appKey?: string;
    dependencies?: IBuildWedaApp['dependencies'];
    buildTypeList: IBuildWedaApp['buildTypeList'];
    mainAppSerializeData?: IBuildWedaApp['cals'];
    cals?: IBuildWedaApp['cals'];
    subAppSerializeDataList?: IBuildWedaApp['subAppCalsList'];
    subAppCalsList?: IBuildWedaApp['subAppCalsList'];
    deployOptions: IBuildWedaApp['deployOptions'];
    mpAppId?: string;
    extraData?: {
        isComposite: boolean;
        compProps: {};
    };
    [key: string]: any;
}
interface InormalizeOutput extends INormalizeInput {
    dependencies: Required<INormalizeInput['dependencies']>;
}
export declare function normalizeInputs(inputs: INormalizeInput, { envId, getWebRootPath, }: {
    envId: string;
    getWebRootPath?: ({ appId, deployOptions }: {
        appId: any;
        deployOptions: any;
    }) => string;
}): InormalizeOutput;
