/**
 * Get a property out of a deeply nested object. Supports array indexing
 * and property matching.
 *
 * Examples:
 * ```js
 * getProp({a: [0, false, ""]}, "a[0]") => 0
 * getProp({a: {b: {c: 1}}}, "a.b.c") => 1
 * getProp({a: {b: {c: 1}}}, "a.b.d") => undefined
 * getProp({a: {b: {c: 1}}}, "a.b") => {c: 1}
 * getProp({a: {b: [1,2]}}, "a.b[0]") => 1
 * getProp({a: {b: {c: 1}, b2: { $use: "a.b"}}, "a.b2") => {c: 1}
 * getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[1]") => {key: "y", val:3}
 * getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[1].val") => 3
 * getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[findBy(key,y)].val") => 3
 * getProp({a: [{key: "x", val:1}, {key: "y", val:3}]}, "a[findBy(val,1)].key") => "x"
 * ```
 */
export declare const getProp: (obj: {
    [index: string]: any;
}, path: string) => any;
