import type { BuilderTarget, BundlerChainRule, SharedHtmlConfig, InspectConfigOptions, CreateBuilderOptions, NormalizedSharedDevConfig, NormalizedSharedHtmlConfig, NormalizedSharedOutputConfig, NormalizedSharedSourceConfig, NormalizedSharedSecurityConfig, NormalizedSharedPerformanceConfig, NormalizedSharedToolsConfig } from './types';
export declare const getDefaultDevConfig: () => NormalizedSharedDevConfig;
export declare const getDefaultSourceConfig: () => NormalizedSharedSourceConfig;
export declare const getDefaultHtmlConfig: () => NormalizedSharedHtmlConfig;
export declare const getDefaultSecurityConfig: () => NormalizedSharedSecurityConfig;
export declare const getDefaultToolsConfig: () => NormalizedSharedToolsConfig;
export declare const getDefaultPerformanceConfig: () => NormalizedSharedPerformanceConfig;
export declare const getDefaultOutputConfig: () => NormalizedSharedOutputConfig;
export declare function outputInspectConfigFiles({ builderConfig, bundlerConfigs, inspectOptions, builderOptions, configType, }: {
    configType: string;
    builderConfig: string;
    bundlerConfigs: string[];
    inspectOptions: InspectConfigOptions & {
        outputPath: string;
    };
    builderOptions: Required<CreateBuilderOptions>;
}): Promise<void>;
/**
 * lodash set type declare.
 * eg. a.b.c; a[0].b[1]
 */
export type GetTypeByPath<T extends string, C extends Record<string, any>> = T extends `${infer K}[${infer P}]${infer S}` ? GetTypeByPath<`${K}.${P}${S}`, C> : T extends `${infer K}.${infer P}` ? GetTypeByPath<P, K extends '' ? C : NonNullable<C[K]>> : C[T];
export declare const setConfig: <T extends Record<string, any>, P extends string>(config: T, path: P, value: GetTypeByPath<P, T>) => void;
export declare function getExtensions({ target, resolveExtensionPrefix, isTsProject, }?: {
    target?: BuilderTarget;
    resolveExtensionPrefix?: NormalizedSharedSourceConfig['resolveExtensionPrefix'];
    isTsProject?: boolean;
}): string[];
export declare function getMinify(isProd: boolean, config: {
    output: NormalizedSharedOutputConfig;
}): false | {
    removeComments: boolean;
    useShortDoctype: boolean;
    keepClosingSlash: boolean;
    collapseWhitespace: boolean;
    removeRedundantAttributes: boolean;
    removeScriptTypeAttributes: boolean;
    removeStyleLinkTypeAttributes: boolean;
};
export declare function getTitle(entryName: string, config: {
    html: SharedHtmlConfig;
}): string;
export declare function getInject(entryName: string, config: {
    html: SharedHtmlConfig;
}): true | "body" | "head";
export declare function getFavicon(entryName: string, config: {
    html: SharedHtmlConfig;
}): string | undefined;
export declare function getMetaTags(entryName: string, config: {
    html: SharedHtmlConfig;
    output: NormalizedSharedOutputConfig;
}): Promise<string>;
export declare function stringifyConfig(config: unknown, verbose?: boolean): Promise<string>;
export declare const chainStaticAssetRule: ({ rule, maxSize, filename, assetType, issuer, }: {
    rule: BundlerChainRule;
    maxSize: number;
    filename: string;
    assetType: string;
    issuer?: any;
}) => void;
export declare const getDefaultStyledComponentsConfig: (isProd: boolean, ssr: boolean) => {
    ssr: boolean;
    pure: boolean;
    displayName: boolean;
    transpileTemplateLiterals: boolean;
};
