/** * F5 CLI - Document Converter * Convert parsed requirements to various Markdown formats * * @module @f5/cli/core/document-converter * @version 1.1.0 */ import type { ParseResult, EnhancedParseResult } from './excel-processor.js'; import type { ChangeSet } from './version-manager.js'; import type { ExtractedImage } from './excel-image-extractor.js'; import type { BusinessRule, FormulaInfo, MergedCellInfo, ColorHighlight } from './excel-formula-handler.js'; export interface GeneratedFilesContent { brs?: string; srs?: string; useCases?: string; changelog?: string; traceability?: string; summary?: string; } export interface GeneratedFiles { files: Record; stats: DocumentStats; } export interface DocumentStats { functional: number; nonFunctional: number; businessRule: number; useCase: number; other: number; critical: number; high: number; medium: number; low: number; } export interface DocumentConverterOptions { outputDir?: string; includeTraceability?: boolean; includeChangeLog?: boolean; includeSummary?: boolean; includeImages?: boolean; includeBusinessRules?: boolean; includeFormulaNotes?: boolean; templateStyle?: 'standard' | 'srs' | 'usecase' | 'compact'; projectName?: string; author?: string; } export interface EnhancedDocumentContent { images?: ExtractedImage[]; businessRules?: BusinessRule[]; formulas?: FormulaInfo[]; mergedCells?: MergedCellInfo[]; colorHighlights?: ColorHighlight[]; } export declare class DocumentConverter { private options; constructor(options?: DocumentConverterOptions); /** * Generate all Markdown files */ generate(data: ParseResult, version: string, changes?: ChangeSet | null): GeneratedFiles; /** * Generate main BRS (Business Requirements Specification) document */ private generateBRS; /** * Generate SRS (Software Requirements Specification) document */ private generateSRS; /** * Generate Use Cases document */ private generateUseCases; /** * Generate Change Log */ private generateChangeLog; /** * Generate Traceability Matrix */ private generateTraceability; /** * Generate Summary document */ private generateSummary; /** * Format single requirement */ private formatRequirement; /** * Format SRS-style requirement */ private formatSRSRequirement; /** * Format use case */ private formatUseCase; /** * Group requirements by category */ private groupRequirements; /** * Calculate statistics */ private calculateStats; /** * Calculate percentage */ private percentage; /** * Get priority icon */ private priorityIcon; /** * Generate all Markdown files with enhanced content (images, formulas, business rules) */ generateEnhanced(data: EnhancedParseResult, version: string, changes?: ChangeSet | null): GeneratedFiles; /** * Generate enhanced BRS with images and business rules */ private generateEnhancedBRS; /** * Generate enhanced summary with image and formula stats */ private generateEnhancedSummary; /** * Generate Business Rules document */ private generateBusinessRulesDoc; /** * Generate Images document */ private generateImagesDoc; /** * Generate Formula Notes document */ private generateFormulaNotes; } export default DocumentConverter;