import { SchemaFieldArrayTemplate, SchemaFieldPrimitiveTemplate, SchemaFieldNestedTemplate, SchemaFieldsTemplate, SchemaFieldTemplate, SchemaFieldTypes } from './schema'; export type FormValueType = string | number | boolean | Array | undefined; export type FormArrayValues = Array>; export type FormValue = SFT extends SchemaFieldPrimitiveTemplate ? SFT extends { type: SchemaFieldTypes.string; } ? string : SFT extends { type: SchemaFieldTypes.number; } ? number : SFT extends { type: SchemaFieldTypes.boolean; } ? boolean : never : SFT extends SchemaFieldNestedTemplate ? SFT extends SchemaFieldArrayTemplate ? FormArrayValues : never : never; export type FormValues = { [Key in keyof SFT]: FormValue; };