import { Observable } from '../Observable'; import { Subject } from '../Subject'; import { GroupedObservable } from '../operators/groupBy'; export { GroupedObservable }; export declare function groupBy(this: Observable, keySelector: (value: T) => K): Observable>; export declare function groupBy(this: Observable, keySelector: (value: T) => K, elementSelector: void, durationSelector: (grouped: GroupedObservable) => Observable): Observable>; export declare function groupBy(this: Observable, keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable) => Observable): Observable>; export declare function groupBy(this: Observable, keySelector: (value: T) => K, elementSelector?: (value: T) => R, durationSelector?: (grouped: GroupedObservable) => Observable, subjectSelector?: () => Subject): Observable>;