import { Primitive } from "../../primitive"; import { TreeLike } from "./tree"; /** * given a tree `T`, changes its leaves from type `LeafType` to type `NewLeafType` * * @warning does not recurse on list items * * @since 0.0.8 */ export type MapLeaves = { [K in keyof T]: T[K] extends LeafType ? NewLeafType : T[K] extends Record ? MapLeaves : never; }; /** * given a tree `T`, augments its leaves to also allow leaves of type `Additional` * * @warning does not recurse on list items * * @since 0.0.8 */ export type AugmentLeaves = { [K in keyof T]: T[K] extends LeafType ? T[K] | Additional : T[K] extends Record ? AugmentLeaves : never; }; /** * given a tree `T`, disallows its leaves to be of type `Excluded` * * @warning does not recurse on list items * * @since 0.0.8 */ export type ExcludeLeaves = { [K in keyof T]: T[K] extends LeafType ? Exclude : T[K] extends TreeLike ? ExcludeLeaves : never; }; //# sourceMappingURL=transform-leaves.d.ts.map