export type VRow = { test(value: unknown): boolean; onlyIf?(parent: Record): boolean; message: string; }; export type VTemplateRow = Array & { check(value: unknown, parent?: Record): Promise; }; export type VInputTemplate = { [key: string]: Array; }; export type VKeys = { readonly [key: string]: VTemplateRow; }; export type VTemplate = VKeys & { check(object: Record): Promise; }; export type VLengthy = unknown & { length: number; };