import type { StringDigit, Prettify } from './types'; type StringKeyOf = `${Extract}`; type Split = S extends `${infer Head}${Delimiter}${infer Tail}` ? [Head, ...Split] : S extends Delimiter ? [] : [S]; type GetWithPath = Keys extends [] ? BaseType : Keys extends readonly [infer Head, ...infer Tail] ? GetWithPath>, Extract> : Default; type Strictify = Type | undefined; type StrictPropertyOf = Record extends BaseType ? string extends keyof BaseType ? Prettify> : BaseType[Key] : BaseType[Key]; type ToPath = Split; type ConsistsOnlyOf = LongString extends '' ? true : LongString extends `${Substring}${infer Tail}` ? ConsistsOnlyOf : false; type WithStringKeys = { [Key in StringKeyOf]: UncheckedIndex; }; type UncheckedIndex = [T] extends [Record] ? T[U] : never; type PropertyOf = BaseType extends null | undefined ? undefined : Key extends keyof BaseType ? StrictPropertyOf : BaseType extends [] | [unknown, ...unknown[]] ? Default : BaseType extends { [n: number]: infer Item; length: number; } ? ConsistsOnlyOf extends true ? Prettify> : Default : Key extends keyof WithStringKeys ? StrictPropertyOf, Key> : Default; export type Get = GetWithPath : Path>; /** * returns the value from the specififed path from the provided object * @example * const obj = { a: { b: [1, 2, 3] } } * get('a.b.1', obj) * // returns 2 * get(['a', 'b', '1'], obj) * // returns 2 */ export default function get(propPath: Path, obj: Obj): Get; export {}; //# sourceMappingURL=get.d.ts.map