import * as lodash from 'lodash';
export declare const _get: {
    <TObject extends object, TKey extends keyof TObject>(object: TObject, path: TKey | [TKey]): TObject[TKey];
    <TObject_1 extends object, TKey_1 extends keyof TObject_1>(object: TObject_1 | null | undefined, path: TKey_1 | [TKey_1]): TObject_1[TKey_1] | undefined;
    <TObject_2 extends object, TKey_2 extends keyof TObject_2, TDefault>(object: TObject_2 | null | undefined, path: TKey_2 | [TKey_2], defaultValue: TDefault): TDefault | Exclude<TObject_2[TKey_2], undefined>;
    <TObject_3 extends object, TKey1 extends keyof TObject_3, TKey2 extends keyof TObject_3[TKey1]>(object: TObject_3, path: [TKey1, TKey2]): TObject_3[TKey1][TKey2];
    <TObject_4 extends object, TKey1_1 extends keyof TObject_4, TKey2_1 extends keyof TObject_4[TKey1_1]>(object: TObject_4 | null | undefined, path: [TKey1_1, TKey2_1]): TObject_4[TKey1_1][TKey2_1] | undefined;
    <TObject_5 extends object, TKey1_2 extends keyof TObject_5, TKey2_2 extends keyof TObject_5[TKey1_2], TDefault_1>(object: TObject_5 | null | undefined, path: [TKey1_2, TKey2_2], defaultValue: TDefault_1): TDefault_1 | Exclude<TObject_5[TKey1_2][TKey2_2], undefined>;
    <TObject_6 extends object, TKey1_3 extends keyof TObject_6, TKey2_3 extends keyof TObject_6[TKey1_3], TKey3 extends keyof TObject_6[TKey1_3][TKey2_3]>(object: TObject_6, path: [TKey1_3, TKey2_3, TKey3]): TObject_6[TKey1_3][TKey2_3][TKey3];
    <TObject_7 extends object, TKey1_4 extends keyof TObject_7, TKey2_4 extends keyof TObject_7[TKey1_4], TKey3_1 extends keyof TObject_7[TKey1_4][TKey2_4]>(object: TObject_7 | null | undefined, path: [TKey1_4, TKey2_4, TKey3_1]): TObject_7[TKey1_4][TKey2_4][TKey3_1] | undefined;
    <TObject_8 extends object, TKey1_5 extends keyof TObject_8, TKey2_5 extends keyof TObject_8[TKey1_5], TKey3_2 extends keyof TObject_8[TKey1_5][TKey2_5], TDefault_2>(object: TObject_8 | null | undefined, path: [TKey1_5, TKey2_5, TKey3_2], defaultValue: TDefault_2): TDefault_2 | Exclude<TObject_8[TKey1_5][TKey2_5][TKey3_2], undefined>;
    <TObject_9 extends object, TKey1_6 extends keyof TObject_9, TKey2_6 extends keyof TObject_9[TKey1_6], TKey3_3 extends keyof TObject_9[TKey1_6][TKey2_6], TKey4 extends keyof TObject_9[TKey1_6][TKey2_6][TKey3_3]>(object: TObject_9, path: [TKey1_6, TKey2_6, TKey3_3, TKey4]): TObject_9[TKey1_6][TKey2_6][TKey3_3][TKey4];
    <TObject_10 extends object, TKey1_7 extends keyof TObject_10, TKey2_7 extends keyof TObject_10[TKey1_7], TKey3_4 extends keyof TObject_10[TKey1_7][TKey2_7], TKey4_1 extends keyof TObject_10[TKey1_7][TKey2_7][TKey3_4]>(object: TObject_10 | null | undefined, path: [TKey1_7, TKey2_7, TKey3_4, TKey4_1]): TObject_10[TKey1_7][TKey2_7][TKey3_4][TKey4_1] | undefined;
    <TObject_11 extends object, TKey1_8 extends keyof TObject_11, TKey2_8 extends keyof TObject_11[TKey1_8], TKey3_5 extends keyof TObject_11[TKey1_8][TKey2_8], TKey4_2 extends keyof TObject_11[TKey1_8][TKey2_8][TKey3_5], TDefault_3>(object: TObject_11 | null | undefined, path: [TKey1_8, TKey2_8, TKey3_5, TKey4_2], defaultValue: TDefault_3): TDefault_3 | Exclude<TObject_11[TKey1_8][TKey2_8][TKey3_5][TKey4_2], undefined>;
    <T>(object: lodash.NumericDictionary<T>, path: number): T;
    <T_1>(object: lodash.NumericDictionary<T_1> | null | undefined, path: number): T_1 | undefined;
    <T_2, TDefault_4>(object: lodash.NumericDictionary<T_2> | null | undefined, path: number, defaultValue: TDefault_4): T_2 | TDefault_4;
    <TDefault_5>(object: null | undefined, path: lodash.PropertyPath, defaultValue: TDefault_5): TDefault_5;
    (object: null | undefined, path: lodash.PropertyPath): undefined;
    <TObject_12, TPath extends string>(data: TObject_12, path: TPath): string extends TPath ? any : lodash.GetFieldType<TObject_12, TPath>;
    <TObject_13, TPath_1 extends string, TDefault_6 = lodash.GetFieldType<TObject_13, TPath_1>>(data: TObject_13, path: TPath_1, defaultValue: TDefault_6): TDefault_6 | Exclude<lodash.GetFieldType<TObject_13, TPath_1>, null | undefined>;
    (object: any, path: lodash.PropertyPath, defaultValue?: any): any;
};
export declare const _range: {
    (start: number, end?: number | undefined, step?: number | undefined): number[];
    (end: number, index: string | number, guard: object): number[];
};
export declare const _concat: <T>(...values: lodash.Many<T>[]) => T[];
export declare const _toNumber: (value: any) => number;
export declare const _isUndefined: (value: any) => value is undefined;
export declare const _dropRight: <T>(array: lodash.List<T> | null | undefined, n?: number | undefined) => T[];
export declare const _intersection: <T>(...arrays: (lodash.List<T> | null | undefined)[]) => T[];
export declare const _set: {
    <T extends object>(object: T, path: lodash.PropertyPath, value: any): T;
    <TResult>(object: object, path: lodash.PropertyPath, value: any): TResult;
};
export declare const _map: {
    <T, TResult>(collection: T[] | null | undefined, iteratee: lodash.ArrayIterator<T, TResult>): TResult[];
    <T_1, TResult_1>(collection: lodash.List<T_1> | null | undefined, iteratee: lodash.ListIterator<T_1, TResult_1>): TResult_1[];
    <T_2>(collection: lodash.Dictionary<T_2> | lodash.NumericDictionary<T_2> | null | undefined): T_2[];
    <T_3 extends object, TResult_2>(collection: T_3 | null | undefined, iteratee: lodash.ObjectIterator<T_3, TResult_2>): TResult_2[];
    <T_4, K extends keyof T_4>(collection: lodash.Dictionary<T_4> | lodash.NumericDictionary<T_4> | null | undefined, iteratee: K): T_4[K][];
    <T_5>(collection: lodash.Dictionary<T_5> | lodash.NumericDictionary<T_5> | null | undefined, iteratee?: string | undefined): any[];
    <T_6>(collection: lodash.Dictionary<T_6> | lodash.NumericDictionary<T_6> | null | undefined, iteratee?: object | undefined): boolean[];
};
export declare const _flatDeep: <T>(array: lodash.ListOfRecursiveArraysOrValues<T> | null | undefined) => lodash.Flat<T>[];
export declare const _uniq: <T>(array: lodash.List<T> | null | undefined) => T[];
export declare const _sortBy: {
    <T>(collection: lodash.List<T> | null | undefined, ...iteratees: lodash.Many<lodash.ListIteratee<T>>[]): T[];
    <T_1 extends object>(collection: T_1 | null | undefined, ...iteratees: lodash.Many<lodash.ObjectIteratee<T_1>>[]): T_1[keyof T_1][];
};
export declare const _uniqBy: <T>(array: lodash.List<T> | null | undefined, iteratee: lodash.ValueIteratee<T>) => T[];
export declare const _random: {
    (floating?: boolean | undefined): number;
    (max: number, floating?: boolean | undefined): number;
    (min: number, max: number, floating?: boolean | undefined): number;
    (min: number, index: string | number, guard: object): number;
};
export declare const _cloneDeep: <T>(value: T) => T;
export declare const _isEmpty: {
    <T extends {
        __trapAny: any;
    }>(value?: T | undefined): boolean;
    (value: string): value is "";
    (value: Map<any, any> | Set<any> | lodash.List<any> | null | undefined): boolean;
    (value: object): boolean;
    <T_1 extends object>(value: T_1 | null | undefined): value is lodash.EmptyObjectOf<T_1> | null | undefined;
    (value?: any): boolean;
};
export declare const _isObject: (value?: any) => value is object;
export declare const _isArray: {
    (value?: any): value is any[];
    <T>(value?: any): value is any[];
};
export declare const _findIndex: <T>(array: lodash.List<T> | null | undefined, predicate?: lodash.ListIterateeCustom<T, boolean> | undefined, fromIndex?: number | undefined) => number;
export declare const _isEqual: (value: any, other: any) => boolean;
export declare const _difference: <T>(array: lodash.List<T> | null | undefined, ...values: lodash.List<T>[]) => T[];
export declare const _shuffle: {
    <T>(collection: lodash.List<T> | null | undefined): T[];
    <T_1 extends object>(collection: T_1 | null | undefined): T_1[keyof T_1][];
};
export declare const _size: (collection: string | object | null | undefined) => number;
export declare const _toPairs: {
    <T>(object?: lodash.Dictionary<T> | lodash.NumericDictionary<T> | undefined): [string, T][];
    (object?: object | undefined): [string, any][];
};
export declare const _orderBy: {
    <T>(collection: lodash.List<T> | null | undefined, iteratees?: lodash.Many<lodash.ListIterator<T, unknown>> | undefined, orders?: lodash.Many<boolean | "asc" | "desc"> | undefined): T[];
    <T_1>(collection: lodash.List<T_1> | null | undefined, iteratees?: lodash.Many<lodash.ListIteratee<T_1>> | undefined, orders?: lodash.Many<boolean | "asc" | "desc"> | undefined): T_1[];
    <T_2 extends object>(collection: T_2 | null | undefined, iteratees?: lodash.Many<lodash.ObjectIterator<T_2, unknown>> | undefined, orders?: lodash.Many<boolean | "asc" | "desc"> | undefined): T_2[keyof T_2][];
    <T_3 extends object>(collection: T_3 | null | undefined, iteratees?: lodash.Many<lodash.ObjectIteratee<T_3>> | undefined, orders?: lodash.Many<boolean | "asc" | "desc"> | undefined): T_3[keyof T_3][];
};
export declare const _fromPairs: {
    <T>(pairs: lodash.List<[lodash.PropertyName, T]> | null | undefined): lodash.Dictionary<T>;
    (pairs: lodash.List<any[]> | null | undefined): lodash.Dictionary<any>;
};
export declare const _xor: <T>(...arrays: (lodash.List<T> | null | undefined)[]) => T[];
export declare const _clone: (object: any) => any;
export declare const _debounce: <T extends (...args: any[]) => any>(func: T, wait?: number) => lodash.DebouncedFunc<T>;
