import type { InferSpecificType } from "../../../types/InferSpecificType"; import type { SpecificType } from "../../../types/SpecificType"; import type { CustomEventConstraint, FullCustomEvents, ShortCustomeEvents, SimpleCustomeEventsList } from "./CustomEventConstraint"; import type { AddTagForCustomEventsDoc } from "./CustomEventsTag"; export type GetShortCustomEventsDoc = T extends SpecificType ? InferSpecificType : T extends null ? null : T extends SimpleCustomeEventsList ? GetShortCustomEventsDoc : never; export type GetFullCustomEventsDoc = GetShortCustomEventsDoc | AddTagForCustomEventsDoc; export type GetCustomEventDoc = { [k in keyof T]: T[k] extends ShortCustomeEvents ? GetShortCustomEventsDoc : GetShortCustomEventsDoc | AddTagForCustomEventsDoc; };