import { ValidationResult } from '../schema/rules';
import { JSON2VideoRequest } from '../schema/schema';
import { RequestBuildResult } from './buildRequest';
/**
 * Extended validation result with request context
 */
export interface RequestValidationResult extends ValidationResult {
    request?: JSON2VideoRequest;
    canProceed: boolean;
    validationLevel: 'structural' | 'semantic' | 'complete';
}
/**
 * Validation options to control validation depth
 */
export interface ValidationOptions {
    level?: 'structural' | 'semantic' | 'complete';
    strictMode?: boolean;
    includeWarnings?: boolean;
    validateElements?: boolean;
}
/**
 * Actionable errors categorized by type
 */
export interface ActionableErrors {
    fixable: string[];
    critical: string[];
    warnings: string[];
}
/**
 * Comprehensive request validation
 */
export declare function validateRequest(request: JSON2VideoRequest, options?: ValidationOptions): RequestValidationResult;
/**
 * Create a human-readable validation summary
 */
export declare function createValidationSummary(result: RequestValidationResult): string;
/**
 * Extract actionable errors categorized by fixability
 */
export declare function extractActionableErrors(result: RequestValidationResult): ActionableErrors;
/**
 * Determine if validation errors are recoverable
 */
export declare function isRecoverable(result: RequestValidationResult): boolean;
/**
 * Validate a RequestBuildResult comprehensively
 */
export declare function validateBuildResult(buildResult: RequestBuildResult, options?: ValidationOptions): RequestValidationResult;
