export type Maybe = T | undefined; export type Nullable = T | null; export type DataValidator = (data: T) => boolean | Promise; export type ValueOf< T extends Record, K extends keyof T = keyof T, > = { [P in keyof T]: T[P]; }[K];