import type { ComponentCategory, ComponentType } from '../types/config.js'; export interface ValidationError { field: string; message: string; severity: 'error' | 'warning' | 'info'; suggestions?: string[]; code?: string; } export interface ValidationResult { isValid: boolean; errors: ValidationError[]; warnings: ValidationError[]; sanitized?: unknown; } export interface PrerequisiteCheck { name: string; description: string; required: boolean; check: () => Promise; installHint?: string; } export interface ProjectValidationOptions { allowSystemPaths?: boolean; maxDepth?: number; requireGitRepository?: boolean; requireNodeProject?: boolean; } export interface ComponentValidationOptions { maxComponents?: number; allowedCategories?: ComponentCategory[]; allowedTypes?: ComponentType[]; requireDescriptions?: boolean; } export declare function validateProjectPathSecure(input: string, options?: ProjectValidationOptions): ValidationResult; export declare function validatePathAccessibility(targetPath: string, operation?: 'read' | 'write' | 'execute'): Promise; export declare function validateComponentName(name: string): ValidationResult; export declare function sanitizeComponentList(components: unknown, options?: ComponentValidationOptions): ValidationResult; export declare function checkNodePrerequisite(minVersion?: string): Promise; export declare function checkTypeScriptPrerequisite(): Promise; export declare function checkESLintPrerequisite(): Promise; export declare function checkGitPrerequisite(requireRepository?: boolean): Promise; export declare function checkAllPrerequisites(options?: { requireTypeScript?: boolean; requireESLint?: boolean; requireGitRepository?: boolean; nodeMinVersion?: string; }): Promise; export declare function sanitizeShellInput(input: string): ValidationResult; export declare function sanitizeConfigInput(config: unknown): ValidationResult; export declare function validateProject(projectPath: string, options?: ProjectValidationOptions): Promise; export declare function formatValidationErrors(result: ValidationResult): string; export declare function createValidationError(field: string, message: string, options?: { severity?: 'error' | 'warning' | 'info'; code?: string; suggestions?: string[]; }): ValidationError; export declare function combineValidationResults(...results: ValidationResult[]): ValidationResult; //# sourceMappingURL=validation.d.ts.map