export declare function array(array: T[] | ArrayLike, body: (element: T, i: number) => void): void; export declare function object(o: TIn, body: (element: TIn[keyof TIn], i: keyof TIn) => void): void; export declare function each(array: T[] | ArrayLike, body: (element: T, i: number) => void): any; export declare function each(o: T, body: (element: T[U], i: U) => void): any; export declare function grepArray(it: T[] | ArrayLike, body: (element: T, i: number) => boolean): T[]; export declare type Proxy = { [P in keyof T]: U; }; export declare function grepObject(o: T, body: (element: T[keyof T], i: keyof T) => boolean, asArray?: true): T[keyof T][]; export declare function grepObject(o: T, body: (element: T[keyof T], i: keyof T) => boolean, asArray: false): Partial; export declare function grepObject(o: T, body: (element: T[keyof T], i: keyof T) => boolean, asArray: boolean): Partial | T[keyof T][]; export declare function grep(array: T[] | ArrayLike, body: (element: T, i: number) => boolean): T[]; export declare function grep(o: T, body: (element: T[U], i: U) => boolean): Partial; export declare function grep(o: T, body: (element: T[U], i: U) => boolean, asArray: true): T[U][]; export declare function mapArray(it: T[] | ArrayLike, body: (element: T, i: number) => U): U[]; export declare function mapObject(o: TIn, body: (element: TIn[keyof TIn], i: keyof TIn) => TResultValue, asArray: true): TResultValue[]; export declare function mapObject(o: TIn, body: (element: TIn[keyof TIn], i: keyof TIn) => TResultValue, asArray?: false): { [P in keyof TIn]?: TResultValue; }; export declare function mapObject(o: TIn, body: (element: TIn[keyof TIn], i: keyof TIn) => TResultValue, asArray?: boolean): any; export declare function map(array: T[] | ArrayLike, body: (element: T, i: number) => U): U[]; export declare function map(o: TIn, body: (element: TIn[TKey], i: TKey) => TResultValue): Proxy; export declare function map(o: TIn, body: (element: TIn[TKey], i: TKey) => TResultValue, asArray: true): TResultValue[];