import type { ScaffoldManifest } from './types.js'; /** * Severity of a validation issue. */ export type ValidationIssueSeverity = 'error' | 'warning'; /** * A validation issue found during scaffold validation. */ export interface ValidationIssue { /** Severity of the issue */ severity: ValidationIssueSeverity; /** Human-readable message describing the issue */ message: string; /** File path where the issue was found, if applicable */ file?: string; } /** * Result of validating a scaffold directory. */ export interface ValidationResult { /** Whether the scaffold is valid (no errors) */ valid: boolean; /** Number of errors found */ errors: number; /** Number of warnings found */ warnings: number; /** All issues found during validation */ issues: ValidationIssue[]; } /** * Validate EJS syntax in template content. * * Checks for: * - Mismatched opening/closing EJS tags * - Invalid EJS tag patterns * - Empty output tags * * @param content - Template content to validate * @param filename - Optional filename for error reporting * @returns Array of validation issues found */ export declare function validateEjsSyntax(content: string, filename?: string): ValidationIssue[]; /** * Check that all referenced template files exist. * * @param filesDir - Path to the files/ directory * @param manifest - Scaffold manifest * @returns Array of validation issues for missing files */ export declare function checkTemplateFiles(filesDir: string, manifest: ScaffoldManifest): Promise; /** * Check for orphaned template files not referenced in manifest. * * @param allTemplates - All template file paths in files/ directory * @param manifest - Scaffold manifest * @returns Array of validation issues for orphaned files */ export declare function checkOrphanedFiles(allTemplates: string[], manifest: ScaffoldManifest): ValidationIssue[]; /** * Options for scaffold directory validation. */ export interface ValidateScaffoldOptions { /** Treat warnings as errors */ strict?: boolean; } /** * Validate a complete scaffold directory. * * Performs comprehensive validation including: * - Checking scaffold.json exists and is valid JSON * - Validating manifest structure against schema * - Verifying files/ directory exists * - Checking all referenced template files exist * - Finding orphaned template files * - Validating EJS syntax in templates * * @param scaffoldPath - Path to the scaffold directory * @param options - Validation options * @returns Validation result with issues found */ export declare function validateScaffoldDirectory(scaffoldPath: string, options?: ValidateScaffoldOptions): Promise;