/**
 * @file src/application/services/rule-loading/UltraSimpleRuleDictionary.ts
 * @description Ultra-simple rule dictionary - ID as key, name as value (SOLID SRP + Functional Programming)
 */
import { RuleDictionary, RuleDictionaryResult } from '../../../shared/types/rule-dictionary';
/**
 * Creates an empty rule dictionary
 * @returns Empty rule dictionary
 */
export declare const createEmptyDictionary: () => RuleDictionary;
/**
 * Adds rules to dictionary, skipping duplicates (Guard Clause Pattern)
 * @param dictionary - Current dictionary
 * @param rules - Rules to add (ID -> Name mapping)
 * @param source - Source identifier for warnings
 * @returns Dictionary result with added/skipped rules
 */
export declare const addRulesToDictionary: (dictionary: RuleDictionary, rules: {
    [ruleId: string]: string;
}, source?: string) => RuleDictionaryResult;
/**
 * Merges multiple rule dictionaries (Functional Composition)
 * @param dictionaries - Array of dictionaries to merge
 * @param sources - Source identifiers for warnings
 * @returns Merged dictionary result
 */
export declare const mergeRuleDictionaries: (dictionaries: RuleDictionary[], sources?: string[]) => RuleDictionaryResult;
/**
 * Gets rule name by ID (Pure Function)
 * @param dictionary - Rule dictionary
 * @param ruleId - Rule ID to find
 * @returns Rule name if found, undefined otherwise
 */
export declare const getRuleNameById: (dictionary: RuleDictionary, ruleId: string) => string | undefined;
/**
 * Checks if rule exists in dictionary (Pure Function)
 * @param dictionary - Rule dictionary
 * @param ruleId - Rule ID to check
 * @returns True if rule exists
 */
export declare const hasRule: (dictionary: RuleDictionary, ruleId: string) => boolean;
/**
 * Gets dictionary statistics (Pure Function)
 * @param dictionary - Rule dictionary
 * @returns Statistics about the dictionary
 */
export declare const getDictionaryStats: (dictionary: RuleDictionary) => {
    totalRules: number;
    uniqueIds: number;
    ruleIds: string[];
    ruleNames: string[];
};
/**
 * Filters dictionary by predicate (Pure Function)
 * @param dictionary - Rule dictionary
 * @param predicate - Filter function
 * @returns Filtered dictionary
 */
export declare const filterDictionary: (dictionary: RuleDictionary, predicate: (ruleId: string, ruleName: string) => boolean) => RuleDictionary;
/**
 * Removes rules from dictionary (Pure Function)
 * @param dictionary - Rule dictionary
 * @param ruleIds - Rule IDs to remove
 * @returns New dictionary without specified rules
 */
export declare const removeRulesFromDictionary: (dictionary: RuleDictionary, ruleIds: string[]) => RuleDictionary;
/**
 * Overrides rules in dictionary (Pure Function)
 * @param dictionary - Rule dictionary
 * @param overrides - Rules to override (ID -> Name mapping)
 * @returns New dictionary with overridden rules
 */
export declare const overrideRulesInDictionary: (dictionary: RuleDictionary, overrides: {
    [ruleId: string]: string;
}[]) => RuleDictionaryResult;
/**
 * Converts array of rule objects to dictionary (Pure Function)
 * @param rules - Array of rule objects with id and name
 * @returns Dictionary mapping
 */
export declare const arrayToDictionary: (rules: {
    id: string;
    name: string;
}[]) => RuleDictionary;
/**
 * Converts dictionary to array of rule objects (Pure Function)
 * @param dictionary - Rule dictionary
 * @returns Array of rule objects
 */
export declare const dictionaryToArray: (dictionary: RuleDictionary) => {
    id: string;
    name: string;
}[];
//# sourceMappingURL=UltraSimpleRuleDictionary.d.ts.map