import { Collector, BaseCollector } from "../collector";
import { Mapper } from "../collections/groupingBy";
export declare class FilteringCollector<T, A, R> extends BaseCollector<T, A, R> {
    protected predicate: Mapper<T, boolean>;
    protected collector: Collector<T, A, R>;
    constructor(predicate: Mapper<T, boolean>, collector: Collector<T, A, R>);
    supply(): A;
    accumulate(container: A, item: T): void;
    combine(container1: A, container2: A): A;
    finish(container: A): R;
}
export declare function filtering<T, U>(predicate: Mapper<T, boolean>): Collector<T, T[], T[]>;
export declare function filtering<T, A, R>(predicate: Mapper<T, boolean>, collector?: Collector<T, A, R>): Collector<T, A, R>;
