import { RN_VERSION, DEPRECATED_RN_VERSION } from '@hyext/matrix-compiler/dist/constants';
export declare type NeoBuildConfigItem = {
    entry: string;
    extType: string;
    registerComponent?: string[];
    baseUrlMap?: {
        ios: string;
        android: string;
    };
    baseMd5Map?: {
        ios: string;
        android: string;
    };
};
export declare type NeoBuildConfig = NeoBuildConfigItem[];
export interface NeoBuilderInfo {
    name: string;
    config: NeoBuilderConfig;
}
export interface NeoBuilderConfig {
    hostId?: 'huyaext' | 'legacy';
    buildConfig: NeoBuildConfig;
}
export interface ProviderOptions {
    projectRoot: string;
    buildConfig: NeoBuildConfig;
    dependencies: {
        [key: string]: any;
    };
    RNVersion: typeof RN_VERSION | typeof DEPRECATED_RN_VERSION;
    isDev: boolean;
}
export interface InfoProvider {
    hostId: string;
    isBuildConfigValid: boolean;
    shouldInstallSDKVer: {
        [name: string]: string;
    };
    SDKVersionValidation: {
        isValid: boolean;
        message?: string;
    };
    projectConfig: {
        [name: string]: any;
    };
    SDKAlias: {
        [alias: string]: string[];
    };
    getBaseModulesPath: (extType: string) => string;
    getBaseModules: (extType: string) => Set<string>;
    getSDKVerByExtType: (extType: string) => string;
    groupBuildConfigFn: (config: NeoBuildConfigItem) => string;
}
export interface HostExtType {
    hostId: string;
    hostName: string;
    hostDesc: string;
    extTypes: TypeInfo[];
}
export interface TypeInfo {
    typeName: string;
    typeTag: string;
    hostId: string;
    runTerminal: string;
    npmPackageName: string;
}
export interface CreateAppPayload {
    projectName: string;
    contextPath: string;
    config: any;
    inputPath: string;
    outputPath: string;
    publicPath: string;
    hostExtTypes: HostExtType[];
}
