/**
 * Validation contract used by every input-bearing element.
 *
 * Two layered shapes are supported:
 *   - `rules`: Laravel-style rule strings ("required", "min:3", "email").
 *     These are translated to the runtime validator inside the engine.
 *   - `messages`: optional per-rule overrides keyed by rule name.
 */
export type ValidationRule = "required" | "nullable" | "email" | "url" | "uuid" | "alpha" | "alpha_num" | "alpha_dash" | "numeric" | "integer" | "boolean" | "json" | "date" | "after" | "before" | "confirmed" | "different" | "same" | "unique" | "exists" | `min:${number}` | `max:${number}` | `between:${number},${number}` | `size:${number}` | `gt:${number}` | `gte:${number}` | `lt:${number}` | `lte:${number}` | `regex:${string}` | `in:${string}` | `not_in:${string}` | (string & {});
export interface ValidationConfig {
    rules?: ValidationRule[];
    messages?: Record<string, string>;
}
//# sourceMappingURL=validation.d.ts.map