import type { Type } from "arktype" import { type } from "arktype" import type { To } from "arktype/internal/attributes.ts" export type { Type } export { type } export type FromTo = (input: In) => To export const typeCustom = (predicate: (value: unknown) => value is Out): Type => { const t = type("unknown").narrow((value: unknown): value is Out => { return predicate(value) }) return t as Type } export type InferInput = Schema["inferIn"] export type InferOutput = Schema["inferOut"] export type Or< A extends Type, B extends Type = never, C extends Type = never, D extends Type = never, E extends Type = never, F extends Type = never, G extends Type = never, H extends Type = never, I extends Type = never, J extends Type = never, > = Type< | InferOutput | InferOutput | InferOutput | InferOutput | InferOutput | InferOutput | InferOutput | InferOutput | InferOutput | InferOutput > export type Or2 = Type>