/**
 * Config类的实现
 * 帮助应用从文件中读取配置，目前仅支持从js文件中读取配置，加入json，yml
 *
 * ```js
 * const config = new Config();
 * config.getConfigFromFile("path/file");
 * ```
 *
 * 当然也支持从object对象中获取配置
 * ```js
 * config.getConfigFromObj({...});
 * ```
 *
 * 获取配置项
 * ```js
 * config.getItem("key");
 * ```
 */
export declare class Config {
    /**
     * 存储配置的容器
     */
    private store;
    /**
     * 默认环境变量的前缀为LIN
     */
    private _prefix;
    private envSuffix;
    /**
     * 当前工作目录
     */
    private baseDir;
    /**
     * 初始化工作目录
     * @param baseDir 工作目录
     */
    init(baseDir?: string): void;
    /**
     * 获取单个的配置项
     * ```js
     * const val = config.getItem("key");
     * ```
     *
     * 支持传入默认值，如果不存在该配置项，则返回传入的默认值
     *
     * ```js
     * const val = config.getItem("key","default");
     * // 如果config中存在key的配置项，则返回其配置项
     * // 否则返回 "default"
     * ```
     *
     * @param key 配置项的路径
     * @param defaultVal 可选参数，默认值
     */
    getItem(key: string, defaultVal?: any): any;
    /**
     * 检查是否存在某个配置项
     *
     * ```js
     * const exit = config.hasItem("key");
     * // 如果存在 exit 为true
     * // 不存在，则exit 为false
     * ```
     * @param key 配置项的路径
     */
    hasItem(key: string): boolean;
    /**
     * 通过硬编码的方式设置配置项
     *
     * ```js
     * config.setItem("name","pedro");
     * // 设置 name 配置项的值为 pedro
     * // 如果config中已存在这个配置项，则覆盖原有的
     * ```
     * @param key 配置项的键
     * @param val 配置项的值
     */
    setItem(key: string, val: any): void;
    /**
     * 从js文件中导入配置
     *
     * ```js
     * config.getConfigFromFile("path/file");
     * ```
     * @param filepath js文件的路径，相对当前工作目录的路径
     */
    getConfigFromFile(filepath: string): void;
    /**
     * 从object对象中导入配置
     *
     * ```js
     * config.getConfigFromObj({...});
     * ```
     * @param obj 配置对象 ，如 {}
     */
    getConfigFromObj(obj: any): void;
    /**
     * 判断是何种环境变量，默认为 debug
     */
    getEnv(): string;
    /**
     * 判断是否为debug环境
     */
    isDebug(): boolean;
    /**
     * 从环境变量里面读取配置，只读取以 @prefix 开头的变量名
     */
    getConfigFromEnv(): void;
    get prefix(): string;
    set prefix(value: string);
}
