import type { Config, ConfigExtender, ProjectPathsConfig, ResolvedConfig, UserPaths } from "../../../types";
/**
 * This functions resolves the WasmKit config by merging the user provided config
 * and the WasmKit default config.
 *
 * @param userConfigPath the user config filepath
 * @param defaultConfig  the WasmKit's default config object
 * @param userConfig     the user config object
 * @param configExtenders An array of ConfigExtenders
 *
 * @returns the resolved config
 */
export declare function resolveConfig(userConfigPath: string | undefined, defaultConfig: Config, userConfig: Config, configExtenders: ConfigExtender[]): ResolvedConfig;
/**
 * This function resolves the ProjectPaths object from the user-provided config
 * and its path. The logic of this is not obvious and should well be document.
 * The good thing is that most users will never use this.
 *
 * Explanation:
 *    - paths.configFile is not overridable
 *    - If a path is absolute it is used "as is".
 *    - If the root path is relative, it's resolved from paths.configFile's dir.
 *    - If any other path is relative, it's resolved from paths.root.
 */
export declare function resolveProjectPaths(userConfigPath: string, userPaths?: UserPaths): ProjectPathsConfig;
