/** * Document Validation Processing Factory * * Factory pattern implementation for document-specific validation processing. * Creates specialized validators based on document type and context. * * @version 1.0.0 * @author Requirements Gathering Agent Team * @created June 2025 */ import { DocumentValidationContext } from './DocumentValidationRegistry'; /** * Result of document validation processing */ export interface ValidationProcessingResult { score: number; issues: string[]; strengths: string[]; missingElements: string[]; contextualRelevance: number; } /** * Base abstract validator for all document types */ declare abstract class BaseDocumentValidator { protected context: DocumentValidationContext; protected content: string; constructor(context: DocumentValidationContext, content: string); /** * Main validation method - template pattern */ validate(): Promise; /** * Validate contextual relevance - does the document serve its purpose? */ protected abstract validateContextualRelevance(): number; /** * Validate required elements specific to this document type */ protected abstract validateRequiredElements(): { score: number; issues: string[]; strengths: string[]; missing: string[]; }; /** * Validate only the PMBOK aspects relevant to this document type */ protected validateRelevantPMBOKAspects(): { score: number; issues: string[]; strengths: string[]; }; /** * Check only the performance domains relevant to this document type */ protected checkRelevantPerformanceDomains(): string[]; /** * Check only the principles relevant to this document type */ protected checkRelevantPrinciples(): string[]; /** * Check if document covers a specific performance domain */ protected hasPerformanceDomainCoverage(domain: string): boolean; /** * Check if document demonstrates a specific PMBOK principle */ protected hasPrincipleCoverage(principle: string): boolean; /** * Check PMBOK terminology usage */ protected checkPMBOKTerminologyUsage(): number; /** * Calculate weighted score based on different validation aspects */ protected calculateWeightedScore(relevanceScore: number, requiredElementsScore: number, pmbokScore: number): number; } /** * Validation Processing Factory */ export declare class ValidationProcessingFactory { /** * Create appropriate validator for document type */ static createValidator(documentType: string, content: string): BaseDocumentValidator; /** * Process validation for a document */ static processValidation(documentType: string, content: string): Promise; } export {}; //# sourceMappingURL=ValidationProcessingFactory.d.ts.map