type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8]; export type Path = [D] extends [never] ? never : T extends ReadonlyArray ? [number] | [number, ...Path] : T extends object ? { [K in keyof T & (string | number)]: [K] | [K, ...Path]; }[keyof T & (string | number)] : never; export type PathValue> = P extends [infer H, ...infer R] ? H extends keyof T ? R extends [] ? T[H] : PathValue : T extends ReadonlyArray ? R extends [] ? E : PathValue : never : T; export declare function asPath>(p: P): P; export {};