/**
 * Form validation utilities
 */
import { FormField, FieldValidation, ValidationErrors, FormTemplate } from '../types';
export declare class FormValidator {
    /**
     * Validate entire form data against template
     */
    static validateForm(data: Record<string, any>, template: FormTemplate): ValidationErrors;
    /**
     * Validate single field
     */
    static validateField(field: FormField, value: any): string | null;
    /**
     * Validate value against validation rules
     */
    static validateValue(fieldName: string, value: any, validation: FieldValidation, fieldType?: string): string | null;
    /**
     * Check if value is empty
     */
    private static isEmpty;
    /**
     * Email validation
     */
    private static isValidEmail;
    /**
     * URL validation
     */
    private static isValidUrl;
    /**
     * Phone number validation (basic)
     */
    private static isValidPhone;
    /**
     * Date validation
     */
    private static isValidDate;
    /**
     * File validation
     */
    private static validateFiles;
    /**
     * Format file size for display
     */
    private static formatFileSize;
}
/**
 * Real-time validation hook utility
 */
export declare class RealtimeValidator {
    private validators;
    private debounceTimers;
    /**
     * Register field validator
     */
    registerField(fieldName: string, validator: (value: any) => Promise<string | null>): void;
    /**
     * Validate field with debouncing
     */
    validateField(fieldName: string, value: any, onResult: (error: string | null) => void, debounceMs?: number): Promise<void>;
    /**
     * Clear all timers
     */
    destroy(): void;
}
export default FormValidator;
//# sourceMappingURL=validation.d.ts.map