import * as Tp from "../../../Collections/Immutable/Tuple/index.js"; import * as T from "../../../Effect/index.js"; import type { Predicate } from "../../../Function/index.js"; import type * as C from "../_internal/core.js"; export declare abstract class GroupBy { readonly _R: (_: R) => void; readonly _E: () => E; readonly _K: () => K; readonly _V: () => V; readonly _A: () => A; } export declare type UniqueKey = number; export declare function make_(stream: C.Stream, key: (a: A) => T.Effect>, buffer: number): GroupBy; /** * @ets_data_first make_ */ export declare function make(key: (a: A) => T.Effect>, buffer: number): (stream: C.Stream) => GroupBy; /** * Only consider the first n groups found in the stream. */ export declare function filter_(self: GroupBy, f: Predicate): GroupBy; /** * Only consider the first n groups found in the stream. * * @ets_data_first filter_ */ export declare function filter(f: Predicate): (self: GroupBy) => GroupBy; /** * Only consider the first n groups found in the stream. */ export declare function first_(self: GroupBy, n: number): GroupBy; /** * Only consider the first n groups found in the stream. * * @ets_data_first first_ */ export declare function first(n: number): (self: GroupBy) => GroupBy; export declare function mergeGroupBy_(self: GroupBy, f: (k: K, stream: C.Stream) => C.Stream): C.Stream; /** * @ets_data_first mergeGroupBy_ */ export declare function mergeGroupBy(f: (k: K, stream: C.Stream) => C.Stream): (self: GroupBy) => C.Stream; //# sourceMappingURL=GroupBy.d.ts.map