/**
 * @import { ConfigObject } from '../../types/index.js';
 */
/**
 * Load and merge configuration objects.
 *
 * - Merge priority: CLI config object > Config file config object > Default config object
 *
 * @param {object} configLoaderOptions
 * @param {string} [configLoaderOptions.cwd] Current working directory. (default: `findRootDir()`)
 * @param {ConfigObject} [configLoaderOptions.cliConfigObject] CLI config object. (default: `{}`)
 * @param {ConfigObject} [configLoaderOptions.defaultConfigObject] Default config object. (default: `defaultConfigObject`)
 * @returns {Promise<ConfigObject>} Merged config object.
 * @async
 */
export default function configLoader({ cwd, cliConfigObject, defaultConfigObject, }?: {
    cwd?: string | undefined;
    cliConfigObject?: Readonly<{
        cwd?: string | undefined;
        entryDir?: string | undefined;
        outDir?: string | undefined;
        browser?: Readonly<{
            browser?: "default" | "chrome" | "edge" | "firefox" | "brave" | undefined;
            secret?: boolean | undefined;
        }> | undefined;
        console?: Readonly<{
            debug?: boolean | undefined;
            quiet?: boolean | undefined;
        }> | undefined;
        add?: Readonly<Record<string, never>> | undefined;
        bug?: Readonly<Record<string, never>> | undefined;
        build?: Readonly<{
            clean?: boolean | undefined;
            templateType?: "rl" | "fs" | undefined;
        }> | undefined;
        discussion?: Readonly<Record<string, never>> | undefined;
        home?: Readonly<Record<string, never>> | undefined;
        info?: Readonly<{
            all?: boolean | undefined;
        }> | undefined;
        open?: Readonly<Record<string, never>> | undefined;
        repo?: Readonly<Record<string, never>> | undefined;
        run?: Readonly<Record<string, never>> | undefined;
    }> | undefined;
    defaultConfigObject?: Readonly<{
        cwd?: string | undefined;
        entryDir?: string | undefined;
        outDir?: string | undefined;
        browser?: Readonly<{
            browser?: "default" | "chrome" | "edge" | "firefox" | "brave" | undefined;
            secret?: boolean | undefined;
        }> | undefined;
        console?: Readonly<{
            debug?: boolean | undefined;
            quiet?: boolean | undefined;
        }> | undefined;
        add?: Readonly<Record<string, never>> | undefined;
        bug?: Readonly<Record<string, never>> | undefined;
        build?: Readonly<{
            clean?: boolean | undefined;
            templateType?: "rl" | "fs" | undefined;
        }> | undefined;
        discussion?: Readonly<Record<string, never>> | undefined;
        home?: Readonly<Record<string, never>> | undefined;
        info?: Readonly<{
            all?: boolean | undefined;
        }> | undefined;
        open?: Readonly<Record<string, never>> | undefined;
        repo?: Readonly<Record<string, never>> | undefined;
        run?: Readonly<Record<string, never>> | undefined;
    }> | undefined;
}): Promise<ConfigObject>;
import type { ConfigObject } from '../../types/index.js';
