import type * as schema from '../schema'; import type * as classes from './classes'; import type { AliasType } from './classes/AliasType'; export type * from './classes'; export interface BaseType { getSchema(): S; } export type Type = classes.AbsType | classes.AnyType | classes.ConType | classes.BoolType | classes.NumType | classes.StrType | classes.BinType | classes.ArrType | classes.ObjType | classes.MapType | classes.RefType | classes.OrType | classes.FnType | classes.FnRxType; export type SchemaOf = T extends BaseType ? U : never; export type SchemaOfMap> = { [K in keyof M]: SchemaOf; }; export type SchemaOfObjectFieldType = F extends classes.KeyOptType ? schema.OptKeySchema> : F extends classes.KeyType ? schema.KeySchema> : never; export type SchemaOfObjectFields = { [K in keyof F]: SchemaOfObjectFieldType; }; export type FilterFunctions = { [K in keyof T as T[K] extends classes.FnType ? K : T[K] extends classes.FnRxType ? K : never]: T[K] extends classes.FnType ? T[K] : T[K] extends classes.FnRxType ? T[K] : never; }; export type TypeOfAlias = T extends AliasType ? T : T extends Type ? T : never; export type ResolveType = T extends AliasType ? schema.TypeOf> : T extends Type ? schema.TypeOf> : T extends schema.Schema ? schema.TypeOf : never; export type infer = ResolveType; //# sourceMappingURL=types.d.ts.map