import type { Nullable } from '../../typings/Types.js'; import type { ValidationInfo } from '../ValidationWrapper.js'; import type { ValidationBuilder } from './ValidationBuilder.js'; export interface ValidationNode { validation: Nullable; children: Nullable<{ [K in keyof T]: ValidationNode; }>; } export type ValidationRule = (builder: ValidationBuilder, value: T) => void; export type ItemValidationRule = (builder: ValidationBuilder, value: T, index: number, array: T[]) => void; export type RootValidationRule = ValidationRule;