/**
 * Code Validator
 *
 * Validates that completed tasks have actual code implementation.
 * Prevents marking tasks as complete when:
 * - Files don't exist
 * - Files are empty or have trivial content
 * - Implementation is incomplete
 *
 * Used by GitHub sync to enforce code-completion discipline.
 *
 * @module CodeValidator
 */
/**
 * File validation result
 */
export interface FileValidationResult {
    path: string;
    exists: boolean;
    hasContent: boolean;
    lineCount: number;
    reason?: string;
}
/**
 * Task validation result
 */
export interface TaskValidationResult {
    taskId: string;
    valid: boolean;
    files: FileValidationResult[];
    reason?: string;
}
/**
 * CodeValidator options
 */
export interface CodeValidatorOptions {
    minLines?: number;
    minChars?: number;
    projectRoot?: string;
}
export declare class CodeValidator {
    private options;
    constructor(options?: CodeValidatorOptions);
    /**
     * Validate that code exists for a task
     *
     * Extracts file paths from task description and verifies:
     * 1. Files exist
     * 2. Files have meaningful content
     * 3. Files are not just stubs
     *
     * @param taskDescription - Task description with file paths
     * @param taskId - Task ID for error messages
     * @returns Validation result
     */
    validateTask(taskDescription: string, taskId: string): Promise<TaskValidationResult>;
    /**
     * Validate a single file
     *
     * @param filePath - Path to file (relative or absolute)
     * @returns File validation result
     */
    validateFile(filePath: string): Promise<FileValidationResult>;
    /**
     * Extract file paths from task description
     *
     * Supports multiple formats:
     * - **Files**: src/foo.ts, src/bar.ts
     * - **Files to create**: src/foo.ts
     * - **Files to modify**: src/bar.ts
     * - Inline code blocks with file paths
     *
     * @param description - Task description text
     * @returns Array of file paths
     */
    extractFilePaths(description: string): string[];
    /**
     * Batch validate multiple tasks
     *
     * @param tasks - Array of {taskId, description}
     * @returns Array of validation results
     */
    validateTasks(tasks: Array<{
        taskId: string;
        description: string;
    }>): Promise<TaskValidationResult[]>;
    /**
     * Get summary of validation results
     *
     * @param results - Array of task validation results
     * @returns Summary statistics
     */
    summarizeResults(results: TaskValidationResult[]): {
        total: number;
        valid: number;
        invalid: number;
        noFiles: number;
        invalidTasks: string[];
    };
}
//# sourceMappingURL=CodeValidator.d.ts.map