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