/**
 * Simplified validation system for forms
 */
import type { FieldError, FieldValue, FieldValues, ValidationRule } from './types.js';
/**
 * Built-in validation rules
 */
export declare class ValidationRules {
    static required(message?: string): ValidationRule;
    static minLength(min: number, message?: string): ValidationRule;
    static maxLength(max: number, message?: string): ValidationRule;
    static min(min: number, message?: string): ValidationRule;
    static max(max: number, message?: string): ValidationRule;
    static email(message?: string): ValidationRule;
    static url(message?: string): ValidationRule;
    static pattern(regex: RegExp, message?: string): ValidationRule;
    static oneOf(options: FieldValue[], message?: string): ValidationRule;
    static custom(validator: (value: FieldValue, formValues?: FieldValues) => boolean | Promise<boolean>, message?: string): ValidationRule;
    static equalTo(fieldName: string, message?: string): ValidationRule;
    static date(message?: string): ValidationRule;
    static file(options?: {
        maxSize?: number;
        allowedTypes?: string[];
        message?: string;
    }): ValidationRule;
}
/**
 * Simple validation manager
 */
export declare class ValidationManager {
    private static instance;
    private customValidators;
    static getInstance(): ValidationManager;
    /**
     * Register a custom validator globally
     */
    registerValidator(name: string, rule: ValidationRule): void;
    /**
     * Get a registered validator
     */
    getValidator(name: string): ValidationRule | undefined;
    /**
     * Validate a single field with multiple rules
     */
    validateField(value: FieldValue, rules: ValidationRule[], formValues?: FieldValues): Promise<FieldError | null>;
    /**
     * Combine multiple validation rules
     */
    combineRules(...rules: ValidationRule[]): ValidationRule[];
    /**
     * Create conditional validation rule
     */
    when(condition: (formValues: FieldValues) => boolean, thenRule: ValidationRule, elseRule?: ValidationRule): ValidationRule;
}
/**
 * Utility functions for validation
 */
export declare const validation: {
    rules: typeof ValidationRules;
    manager: ValidationManager;
    email: () => ValidationRule;
    required: () => ValidationRule;
    minLength: (min: number) => ValidationRule;
    maxLength: (max: number) => ValidationRule;
    pattern: (regex: RegExp, message?: string) => ValidationRule;
    async: (validator: (value: FieldValue, formValues?: FieldValues) => Promise<boolean>, message: string) => ValidationRule;
};
//# sourceMappingURL=validation-simple.d.ts.map