import { Slot, SlotLiteral } from './slot'; import { AsyncSlot } from './async-runtime'; import { AsyncSlotLiteral } from './async-literals'; import { ComponentStateLiteral } from './component'; export type ToLiteral = T extends AsyncSlot ? AsyncSlotLiteral : T extends Slot ? SlotLiteral : T extends [infer First, ...infer Rest] ? [ToLiteral, ...Rest] : T extends Array ? Array> : T extends Record ? ComponentStateLiteral : T;