import { DeepMerged } from '../deepMerge'; /** Resolves a dot-path string (e.g. `"a.b.c"`) to the value type at that path, or `undefined` if absent. */ export type PathValue = Path extends `${infer Head}.${infer Rest}` ? Head extends keyof Obj ? PathValue, Rest> : undefined : Path extends keyof Obj ? Obj[Path] : undefined; /** Narrows a resolved path value to something `deepMerge` accepts; non-objects contribute nothing. */ export type AsSource = T extends object ? T : undefined; /** Forces the language server to display the merged object literal instead of the alias expression. */ type Simplify = { [K in keyof T]: T[K]; } & {}; /** Result of `mergeProps(obj, ...paths)`: the value at each path, deep-merged left-to-right. */ export type MergedProps = Simplify>; }>>; export {};