import type { anyOrNever, array } from "@ark/util"; import type { ArrayType } from "./array.ts"; import type { BaseType } from "./base.ts"; import type { DateType } from "./date.ts"; import type { NumberType } from "./number.ts"; import type { ObjectType } from "./object.ts"; import type { StringType } from "./string.ts"; export type instantiateType = [ t ] extends [anyOrNever] ? BaseType : [t] extends [object] ? [ t ] extends [array] ? ArrayType : [t] extends [Date] ? DateType : ObjectType : [t] extends [string] ? StringType : [t] extends [number] ? NumberType : BaseType;