/**
 * @file src/application/services/rule-loading/SimpleRuleDictionary.ts
 * @description Pure functional dictionary for simple rules (SOLID SRP + Functional Programming)
 */
import { SimpleRule, SimpleRuleDictionary, SimpleRuleDictionaryResult } from '../../../shared/types/simple-rules';
/**
 * Creates an empty simple rule dictionary
 * @returns Empty rule dictionary
 */
export declare const createEmptySimpleDictionary: () => SimpleRuleDictionary;
/**
 * Adds simple rules to dictionary, skipping duplicates (Guard Clause Pattern)
 * @param dictionary - Current dictionary
 * @param rules - Rules to add
 * @param source - Source identifier for warnings
 * @returns Dictionary result with added/skipped rules
 */
export declare const addSimpleRulesToDictionary: (dictionary: SimpleRuleDictionary, rules: SimpleRule[], source?: string) => SimpleRuleDictionaryResult;
/**
 * Merges multiple simple rule dictionaries (Functional Composition)
 * @param dictionaries - Array of dictionaries to merge
 * @param sources - Source identifiers for warnings
 * @returns Merged dictionary result
 */
export declare const mergeSimpleRuleDictionaries: (dictionaries: SimpleRuleDictionary[], sources?: string[]) => SimpleRuleDictionaryResult;
/**
 * Converts dictionary to array of simple rules (Pure Function)
 * @param dictionary - Rule dictionary
 * @returns Array of rules
 */
export declare const simpleDictionaryToRules: (dictionary: SimpleRuleDictionary) => SimpleRule[];
/**
 * Gets simple rule by ID from dictionary (Pure Function)
 * @param dictionary - Rule dictionary
 * @param ruleId - Rule ID to find
 * @returns Rule if found, undefined otherwise
 */
export declare const getSimpleRuleById: (dictionary: SimpleRuleDictionary, ruleId: string) => SimpleRule | undefined;
/**
 * Checks if simple rule exists in dictionary (Pure Function)
 * @param dictionary - Rule dictionary
 * @param ruleId - Rule ID to check
 * @returns True if rule exists
 */
export declare const hasSimpleRule: (dictionary: SimpleRuleDictionary, ruleId: string) => boolean;
/**
 * Gets simple rule dictionary statistics (Pure Function)
 * @param dictionary - Rule dictionary
 * @returns Statistics about the dictionary
 */
export declare const getSimpleDictionaryStats: (dictionary: SimpleRuleDictionary) => {
    totalRules: number;
    uniqueIds: number;
    ruleIds: string[];
    ruleNames: string[];
};
/**
 * Filters simple dictionary by predicate (Pure Function)
 * @param dictionary - Rule dictionary
 * @param predicate - Filter function
 * @returns Filtered dictionary
 */
export declare const filterSimpleDictionary: (dictionary: SimpleRuleDictionary, predicate: (rule: SimpleRule) => boolean) => SimpleRuleDictionary;
/**
 * Removes simple rules from dictionary (Pure Function)
 * @param dictionary - Rule dictionary
 * @param ruleIds - Rule IDs to remove
 * @returns New dictionary without specified rules
 */
export declare const removeSimpleRulesFromDictionary: (dictionary: SimpleRuleDictionary, ruleIds: string[]) => SimpleRuleDictionary;
/**
 * Overrides simple rules in dictionary (Pure Function)
 * @param dictionary - Rule dictionary
 * @param overrides - Rules to override (by ID)
 * @returns New dictionary with overridden rules
 */
export declare const overrideSimpleRulesInDictionary: (dictionary: SimpleRuleDictionary, overrides: Partial<SimpleRule>[]) => SimpleRuleDictionaryResult;
/**
 * Validates simple rule structure (Pure Function with Guard Clauses)
 * @param rule - Rule to validate
 * @returns Validation result
 */
export declare const validateSimpleRule: (rule: any) => {
    valid: boolean;
    errors: string[];
};
/**
 * Validates array of simple rules (Pure Function)
 * @param rules - Rules to validate
 * @returns Validation result
 */
export declare const validateSimpleRules: (rules: any[]) => {
    valid: boolean;
    errors: string[];
};
//# sourceMappingURL=SimpleRuleDictionary.d.ts.map