import type { IfExtends } from "hry-types/src/Any/IfExtends"; import type { Select } from "hry-types/src/Object/Select"; import type { AddNullForObject } from "../../../types/AddNullForObject"; import type { InferSpecificType } from "../../../types/InferSpecificType"; import type { OptionalType, PropertiesConstraint } from "./PropertiesConstraint"; export type GetOptionalDoc = Select> = { [k in keyof Optional]?: IfExtends>, InferSpecificType>, IfExtends | InferSpecificType<(Optional[k]["optionalTypes"] & {})[number]>>, InferSpecificType | InferSpecificType<(Optional[k]["optionalTypes"] & {})[number]>>>; };