import type { RuleItem, ValidateMessages } from "async-validator"; export type XyNamePath = number | string | readonly (number | string)[]; export type XyFormValidateTrigger = "blur" | "change" | "submit"; export type XyFormRule = RuleItem & { trigger?: XyFormValidateTrigger | XyFormValidateTrigger[]; }; export type XyFormRuleConfig = XyFormRule | XyFormRule[]; export type XyFormRules = Record; export type XyFormValidateMessages = Partial; export interface XyFormValidationOptions { defaultMessage?: string; messageVariables?: Record; validateFirst?: boolean; validateMessages?: XyFormValidateMessages; } export interface XyFormValidationResult { errors: string[]; valid: boolean; } export interface XyFormValidationIssue { code: "validation-failed"; field: string; message: string; } export interface XyFormValidationDetailedResult extends XyFormValidationResult { issues: XyFormValidationIssue[]; } export declare function normalizeNamePath(name: XyNamePath): Array; export declare function namePathToString(name: XyNamePath): string; export declare function getValueByPath(source: unknown, name: XyNamePath): T | undefined; export declare function setValueByPath(source: Record, name: XyNamePath, value: unknown): Record; export declare function deleteValueByPath(source: Record, name: XyNamePath): boolean; export declare function getRulesForTrigger(rules: XyFormRuleConfig | undefined, trigger?: XyFormValidateTrigger): XyFormRule[]; export declare function validateFormValue(name: XyNamePath, value: unknown, rules: XyFormRuleConfig | undefined, trigger?: XyFormValidateTrigger, options?: XyFormValidationOptions): Promise; export declare function validateFormValueDetailed(name: XyNamePath, value: unknown, rules: XyFormRuleConfig | undefined, trigger?: XyFormValidateTrigger, options?: XyFormValidationOptions): Promise;