import type { Constant, Fn } from 'hotscript'; import type { ITransformerDTO, SerializableTransformer, Transformer, TypedTransformer } from './transformer.js'; export type TypeModifier = TRANSFORMER extends TypedTransformer ? TRANSFORMER['_typeModifier'] : Constant>; export type TypeModifiers = TRANSFORMERS extends [infer TRANSFORMERS_HEAD, ...infer TRANSFORMERS_TAIL] ? TRANSFORMERS_HEAD extends Transformer ? TRANSFORMERS_TAIL extends Transformer[] ? TypeModifiers]> : never : never : FNS; export type TransformerDTO = ReturnType; export type TransformerDTOs = TRANSFORMERS extends [infer TRANSFORMERS_HEAD, ...infer TRANSFORMERS_TAIL] ? TRANSFORMERS_HEAD extends SerializableTransformer ? TRANSFORMERS_TAIL extends SerializableTransformer[] ? TransformerDTOs]> : never : never : DTOS;