import type { ArrayNode } from "./array-node.js"; import type { BaseNode } from "./base-node.js"; import type { RecordNode } from "./record-node.js"; import type { StructNode } from "./struct-node.js"; import type { UnionNode } from "./union-node.js"; type ResolvedSegment = TRoot extends StructNode ? TSegment extends keyof TEntries ? TEntries[TSegment] : never : TRoot extends ArrayNode ? TElement : TRoot extends RecordNode ? TValue : TRoot extends UnionNode> ? ResolvedSegment : never; /** * Returns the node which lies at the given path in the schema. */ export type ResolvedPath = TPath extends string ? TPath extends `${infer TFirst}.${infer TRest}` ? ResolvedSegment extends BaseNode ? ResolvedPath, TRest> | never : undefined : ResolvedSegment : TRoot; export {}; //# sourceMappingURL=resolved-path.d.ts.map