export interface PatternValidationResult {
    isEnhanced: boolean;
    score: number;
    passed: string[];
    failed: string[];
    suggestions: string[];
    details: {
        hasCorrectInterface: boolean;
        hasRequiredProperties: boolean;
        hasProperMetadata: boolean;
        hasValidation: boolean;
        hasFactoryFunction: boolean;
        hasBundleAnnotations: boolean;
        hasAsyncExecute: boolean;
    };
}
export interface CommandAnalysis {
    commandName: string;
    filePath: string;
    validation: PatternValidationResult;
    recommendations: string[];
}
export declare class CommandPatternValidator {
    static validateCommand(CommandClass: new () => unknown, factoryFunction?: Function, sourceCode?: string): PatternValidationResult;
    private static validateInterface;
    private static validateRequiredProperties;
    private static validateMetadataQuality;
    private static validateValidationMethod;
    private static validateBundleAnnotations;
    private static validateAsyncExecute;
}
export declare class CommandSuiteValidator {
    static validateCommandSuite(commands: Array<{
        name: string;
        filePath: string;
        CommandClass: any;
        factoryFunction?: Function;
    }>): Promise<{
        overall: {
            total: number;
            enhanced: number;
            averageScore: number;
            needsWork: number;
        };
        commands: CommandAnalysis[];
        recommendations: string[];
    }>;
}
export declare class ValidationReporter {
    static printCommandValidation(analysis: CommandAnalysis): void;
    static printSuiteValidation(result: Awaited<ReturnType<typeof CommandSuiteValidator.validateCommandSuite>>): void;
}
//# sourceMappingURL=command-pattern-validator.d.ts.map