import { ObservableLike } from '@dws/muster-observable'; import { Stream, StreamSubscription, StreamUpdateCallback, Subject } from '../types/stream'; export declare function never(): Stream; export declare function just(value: T): Stream; export declare function defer(factory: () => Stream): Stream; export declare function skipRepeatedValues(equality: (value: T, previousValue: T) => boolean, stream: Stream): Stream; export declare function filter(predicate: (value: T) => boolean, stream: Stream): Stream; export declare function map(project: (value: T) => V, stream: Stream): Stream; export declare function tap(fn: (value: T) => void, stream: Stream): Stream; export declare function merge(...streams: Array>): Stream; export declare function flatten(stream: Stream>): Stream; export declare function combineLatest(combine: (values: Array) => V, streams: Array>): Stream; export declare function sample(sampleStream: Stream, sourceStream: Stream): Stream; export declare function takeFirst(stream: Stream): Stream; export declare function takeUntilPredicate(predicate: (value: T) => boolean, stream: Stream): Stream; export declare function switchMap(project: (value: V) => Stream, stream: Stream): Stream; export declare function mapRecursive(project: (value: T) => T | Stream, stream: Stream): Stream; export declare function addStreamListeners(stream: Stream, options: { subscribe?: () => void; unsubscribe?: () => void; invalidate?: (invalidate: () => void) => void; }): Stream; export declare function subject(): Subject; export declare function behaviorSubject(initialValue: T): Subject; export declare function share(stream: Stream): Stream; export declare function fromEmitter(emitter: { emit(event: T): void; listen(callback: (event: T) => void): () => void; }): Stream; export declare function toObservable(stream: Stream): ObservableLike; export declare function createStream(factory: (callback: StreamUpdateCallback) => StreamSubscription): Stream; export declare function createSubscription(actions: { unsubscribe(): void; invalidate(): void; }): StreamSubscription;