import { StreamDebounce } from './transformations/debounce'; import { StreamFilter } from './transformations/filter'; import { StreamMapping } from './transformations/mapping'; import { StreamSignal } from './transformations/signal'; import { DebounceParameters, SignalParameters, State, StateChangeListener, StateChangeTransformation } from './types'; export type Subscriber = StateChangeListener | Stream; export declare class Stream { private _onNext; private _previousState?; private _state?; isInitialized(): boolean; get state(): State | undefined; get value(): T | undefined; toJSON(): T | undefined; publish(value: T | State | undefined): void; then(subscriber: Subscriber): Stream; subscribe(subscriber: Subscriber): Stream; default(value: T): Stream; filter(): StreamFilter; map(): StreamMapping; debounce(params?: DebounceParameters): StreamDebounce; signal(params?: SignalParameters): StreamSignal; extract(key: U): Stream[U]>; join(map: { [key in keyof StreamMap]: Stream; }, transform: StateChangeTransformation; }, U>): Stream; static join(map: { [key in keyof T]: Stream; }): Stream; static of(...streams: Stream[]): Stream; static anyReady(...streams: Stream[]): Stream; static anyOf(...streams: Stream[]): Stream; static allOf(...streams: Stream[]): Stream; static just(data: T): Stream; createStream(): Stream; protected isCallback(source: any): source is T; }