/**
 * @file src/application/services/RuleLoaderService.ts
 * @description Service for loading and composing validation rules (SOLID SRP refactored)
 */
import { RuleConfig, RuleLoadResult } from '../../shared/types/rules';
/**
 * @interface RuleLoaderOptions
 * @description Options for the rule loader
 */
interface RuleLoaderOptions {
    /** Working directory for relative paths */
    workingDirectory?: string;
    /** Whether to include core rules by default */
    includeCoreRules?: boolean;
    /** Whether to validate loaded rules */
    validateRules?: boolean;
}
/**
 * @class RuleLoaderService
 * @description Service for loading and composing validation rules (SOLID SRP)
 */
export declare class RuleLoaderService {
    private readonly workingDirectory;
    private readonly includeCoreRules;
    private readonly validateRules;
    constructor(options?: RuleLoaderOptions);
    /**
     * Loads rules from a configuration
     * @param config - Rule configuration
     * @returns Promise with loaded rules and any errors/warnings
     */
    loadRules(config: RuleConfig): Promise<RuleLoadResult>;
    /**
     * Gets base rules to start with
     * @returns Base rules
     */
    private getBaseRules;
    /**
     * Loads multiple rule sets
     * @param ruleSetPaths - Array of rule set paths
     * @returns Array of rule load results
     */
    private loadRuleSets;
    /**
     * Gets available core rule sets
     * @returns Available core rule set names
     */
    getAvailableCoreRuleSets(): string[];
}
export {};
//# sourceMappingURL=RuleLoaderService.d.ts.map