import * as C from "./configTypesRaw"; export type ValueType = C.ValueType; export type InputSpec = Record>; export type ValueSpec = Required; /** core spec types. These types provide the metadata for performing validations */ export type ValueSpecOf = Required>; export type ValueSpecString = Required; export type ValueSpecTextarea = Required; export type ValueSpecNumber = Required; export type ValueSpecSelect = Required; export type ValueSpecMultiselect = Required; export type ValueSpecBoolean = Required; export type ValueSpecUnion = Required; export type ValueSpecFile = Required; export type ValueSpecObject = Required; export type WithStandalone = Required; export type SelectBase = Required; export type ListValueSpecType = Required; /** represents a spec for the values of a list */ export type ListValueSpecOf = Required< C.ListValueSpecOf >; /** represents a spec for a list */ export type ValueSpecList = Required; export type ValueSpecListOf = Required< C.ValueSpecListOf >; // sometimes the type checker needs just a little bit of help export function isValueSpecListOf( t: ValueSpecListOf, s: S ): t is ValueSpecListOf & { spec: ListValueSpecOf } { return t.spec.type === s; } export type ListValueSpecString = Required; export type ListValueSpecNumber = Required; export type ListValueSpecObject = Required; export type UniqueBy = Required; export type DefaultString = Required; export const unionSelectKey = "unionSelectKey" as const; export type UnionSelectKey = typeof unionSelectKey; export const unionValueKey = "unionValueKey" as const; export type UnionValueKey = typeof unionValueKey;