/*!
 * Copyright 2017 - 2020 by ChartIQ, Inc.
 * All rights reserved.
 */
import { Manifest, StandardPromise } from "../types";
declare type ConfigImport = Record<string, any>;
export declare class ConfigUtil {
    /**
     * <h2>Finsemble Configuration Utility Functions</h2>
     * @private
     * @class ConfigUtil
     */
    /**
     * Recursively walks a config object tp resolves manifest macros (i.e. $applicationRoot)
     *
     * Note: electron-adapter's Manifest.ts has a smaller footprint implementation of
     * macro replacement (using traverse())
     *
     * @param finsembleConfig The manifest
     * @param startingConfigObject The section of code to process for substitutions
     */
    resolveManifestMacros(manifest: Manifest, startingConfigObject: any): void;
    getExpandedRawManifest(): StandardPromise<Manifest>;
    fetchConfigFile(url: string): StandardPromise<ConfigImport>;
    private graftImportOnToManifest;
    getInitialManifest(): StandardPromise<Manifest>;
    promptAndSaveJSONToLocalFile(filename: string, jsonObject: any): void;
    configFormatForExport(typeOfConfig: string, configObject: any): any;
    /**
     * Convenience function to get a default value from config.
     *
     * @param {object} base base path of config object
     * @param {string} path path string of config property
     * @param {any} defaultValue if path value not defined or null, then use default value
     *
     * @returns {object} return config value or default value
     *
     * @example
     *
     *		defaultAdaptor = ConfigUtil.getDefault(manifest, "manifest.finsemble.defaultStorage", "LocalStorageAdapter");
     *		sameDomainTransport = ConfigUtil.getDefault(finConfig, "finConfig.router.sameDomainTransport", "SharedWorker");
     *		var serverAddress = getDefault(params, "params.transportSettings.FinsembleTransport.serverAddress", "ws://127.0.0.1:3376");
     *
     */
    getDefault(base: Record<string, any>, path: string, defaultValue?: any): any;
}
export declare const ConfigUtilInstance: ConfigUtil;
export {};
//# sourceMappingURL=configUtil.d.ts.map