/**
 * 项目相关操作
 * @author Janesen
 */
export declare class System {
    /**
     * 项目标题
     */
    static projectTitle: string;
    /**
     * 项目的全局配置对象，将会自动生成到base.html中
     */
    static projectGlobalConfig: any;
    /**
     * 获取默认的vue配置文件
     * @param dirName 项目根目录，建议取值 {@link __dirname}
     * @param options 更多选项配置 {@link BuildOption}
     */
    static getDefaultVueConfig(dirName: string, options?: BuildOption): any;
    /**
     * 是否是 vue-cli-service build 命令构建模式
     */
    static isVueCliServerBuild(): boolean;
    /**
     * 是否是 vue-cli-service server 命令构建模式
     */
    static isVueCliServerServer(): boolean;
    /**
     * 是否是正式版本，production
     */
    static isProduction(): boolean;
    /**
     * 是否的打包开发版本，development
     */
    static isDevelopment(): boolean;
    /**
     * 是否的打包测试版本，test
     */
    static isVueTest(): boolean;
    /**
     * 获取运行脚本 npm_lifecycle_script 里的参数值，例如：--model production 参数名：--model 参数值：production
     * @param argument
     */
    static getScriptArgumentValue(argument: string): string | null;
    /**
     * 获取命令参数 --client 或 --client-strict 的值
     */
    static getServiceClient(): string;
    /**
     * 是否使用了命令参数 --client-strict
     */
    static isServiceClientStrict(): boolean;
    /**
     * 获取命令参数 --debug 的值
     */
    static isServiceDebug(): boolean;
    /**
     * 获取打包支持的支付方式，避免ios上架失败，不允许支付宝支付等功能
     */
    static getServicePay(): string[];
    /**
     * 设置全局变量值
     * @param key 变量名
     * @param data 变量值
     */
    static setGlobalConfig(key: string, data: any): void;
    /**
     * 设置FastServer请求接口的全局默认参数
     * @param data 参数对象
     */
    static setFinalParams(data: any): void;
    /**
     * 彻底删除指定目录文件
     * @param path
     */
    static removeFile(path: any): void;
}
/**
 * 页面相关操作
 */
export declare class Pages {
    /**
     * 第三方插件存放目录文件夹，默认：node_modules
     */
    static nodeModulesDir: string;
    /**
     * vue页面的相对目录文件夹，默认：src/pages/
     */
    static pagesDir: string;
    /**
     * 入口文件名，默认：index.js
     */
    static mainFileName: string;
    /**
     * 页面的默认配置json，按照vue的格式配置即可
     */
    static configFileName: string;
    /**
     * 入口文件的模板名称，默认：index.html
     */
    static templateFileName: string;
    /**
     * 获取vue页面配置，vue.config.js 中的pages配置
     * @param dirName 项目的根目录
     * @param options 更多配置
     */
    static getBuildPages(dirName: string, options?: BuildOption): any;
    /**
     * 创建默认的index索引页面
     * @param pagesValue
     * @param dirName
     * @param options
     */
    static createIndexPage(pagesValue: string, dirName: string, options?: BuildOption): any;
    /**
     * 快速复制一个vue子页面开发
     * @param dirName 项目根目录
     * @param copyPageName 复制目标的文件夹名
     * @param newPageName 新生成的文件夹名
     */
    static copyPage(dirName: string, copyPageName: string, newPageName: string): void;
}
/**
 * 全局注入脚本插件
 */
export declare class FastInjectJsPlugin {
    private readonly options;
    constructor(options: any);
    filter(key: string, targetFilter: any): boolean;
    injectArray(local: any, entry: any, targetInjectJsFiles: any): void;
    injectObject(local: any, entry: any, targetInjectJsFiles: any): void;
    apply(compiler: any): void;
}
/**
 * 获取编译配置的选项配置，配置选项如下：
 * <br/>
 * {@link projectTitle } 项目名称
 * <br/>
 * {@link createConfigFile } 是否在每个页面目录下自动创建config.json文件
 * <br/>
 * {@link createIndexPage } 是否自动创建项目的index页面
 * <br/>
 * {@link globalConfig } 系统的全局配置
 * <br/>
 * {@link finalParams } FastServer请求接口全局请求参数，web项目的全局参数优先级大于原生APP的全局参数
 * <br/>
 * {@link injectJsFiles } 所有页面全局注入的js文件
 * <br/>
 * {@link injectJsFilter } 所有页面全局注入js文件过滤器
 * <br/>
 * {@link injectVariable } 所有页面全局注入js变量
 * <br/>
 * {@link cacheVueLoader } 是否使用vue默认的cache-loader，默认使用
 */
export declare class BuildOption {
    /**
     * 项目名称
     */
    projectTitle: string | undefined;
    /**
     * 是否在每个页面目录下自动创建config.json文件
     */
    createConfigFile: boolean;
    /**
     * 是否自动创建项目的index页面
     */
    createIndexPage: boolean;
    /**
     * 系统的全局配置
     * @example
     * globalConfig:{
     *     mainUrl:"http://192.168.0.1:8080/test"
     * }
     */
    globalConfig: object | undefined;
    /**
     * FastServer请求接口全局请求参数。Web项目的全局参数优先级大于原生APP的全局参数
     * @example
     * finalParams:{
     *     userId:2,
     *     userName:undefined //当配置undefined值时，将排除此参数属性名
     * }
     */
    finalParams: object | undefined;
    /**
     * 所有页面全局注入的js文件
     * @example
     * injectJsFiles:["src/js/test.js","src/js/icon.js"]
     * 或
     * injectJsFiles:{
     *     "src/js/test.js":{
     *         exclude:["user","set"] //排除注入页面的名称，例如：user.html，set.html
     *     },
     *      "src/js/icon.js":{
     *         include:["user","set"] //指定注入页面的名称，例如：user.html，set.html
     *     }
     * }
     * 或
     * injectJsFiles:[
     *      "src/js/test.js",
     *      {
     *          "src/js/icon.js":{
     *              exclude:["user","set"] //排除注入页面的名称，例如：user.html，set.html
     *          }
     *      }
     * ]
     */
    injectJsFiles: string[] | object | undefined;
    /**
     * 所有页面全局注入js文件过滤器，当 {@link injectJsFiles} 为数组时生效！
     * @example
     * injectJsFilter:{
     *     include:["user","set"] //指定注入页面的名称，例如：user.html，set.html
     * }
     * 或
     * injectJsFilter:{
     *     exclude:["user","set"] //排除注入页面的名称，例如：user.html，set.html
     * }
     */
    injectJsFilter: {
        /**
         * 包含指定的页面，例如：user.html，set.html 则传入["user","set"]
         */
        include?: string[];
        /**
         * 排除指定页面，例如：user.html，set.html 则传入["user","set"]
         */
        exclude?: string[];
    } | undefined;
    /**
     * 所有页面全局js变量注入
     * @example
     * injectVariable:{
     *     getUserId:function(){
     *         return 1;
     *     },
     *     server:"……"
     * }
     */
    injectVariable: any | undefined;
    /**
     * 是否使用vue默认的cache-loader缓存vue-loader，如果不使用，则在build版本前将删除缓存的目录.cache/vue-loader
     */
    cacheVueLoader: boolean;
    /**
     * 是否强制检测配置客户端 --client 编译完全匹配
     */
    clientStrict: boolean;
}
