/**
 * Config normalizer for JSON merge rules.
 * Expands shorthand, validates strategies, parses importance,
 * and classifies rules into exact / top-level / glob categories.
 */
import { Matcher } from "./matcher";
import { AllStrategies, Config, StrategyFn } from "./types";
export interface StrategyItem {
    name: string;
    important: boolean;
}
export interface StrategyList {
    strategies: StrategyItem[];
    order: number;
    source: string;
}
export interface NormalizedRules {
    exact: Record<string, StrategyList[]>;
    exactFields: Record<string, StrategyList[]>;
    patterns: Record<string, StrategyList[]>;
    default: StrategyItem[];
}
export interface NormalizedConfig<T extends string = AllStrategies, TContext = unknown> extends Omit<Config<T, TContext>, "byStrategy" | "rules" | "defaultStrategy" | "customStrategies"> {
    rules: NormalizedRules;
    matcher: Matcher;
    include: string[];
    exclude: string[];
    customStrategies: Record<string, StrategyFn<TContext>>;
}
/** Defaults */
export declare const DEFAULT_CONFIG: {
    defaultStrategy: string[];
    include: string[];
    exclude: string[];
    debug: boolean;
    writeConflictSidecar: boolean;
};
/**
 * Normalize user config into fully expanded and classified form.
 */
export declare const normalizeConfig: <T extends string = AllStrategies>(config: Config<T>) => Promise<NormalizedConfig>;
