declare type FilteringFn<V> = (element: V, index: number, arr: V[]) => boolean;
declare type _Filter = <T>(fn: FilteringFn<T>, arr: T[]) => T[];
declare type _Filter2 = <T>(fn: FilteringFn<T>) => (arr: T[]) => T[];
declare type Filter = _Filter & _Filter2;
/**
 * Functional wrapper for Array.prototype.filter
 *
 * Creates a new array from the initial one, without the values
 * that does not meet the condition specified in a filtering function.
 *
 * @param fn Filtering function
 * @param arr Initial array
 * @returns New array
 */
declare const filter: Filter;
export { filter };
export default filter;
