///
import { Readable, Stream } from 'stream';
import { IObservable } from './src/internal/Observable';
import { IObserver } from './src/internal/Observer';
import { ISubscription } from './src/internal/Subscription';
import { IScheduler } from './src/schedulers/Scheduler';
export { Observable } from './src/internal/Observable';
export declare class Air implements IObservable {
private src;
constructor(src: IObservable);
subscribe(observer: IObserver, scheduler?: IScheduler): ISubscription;
concatMap(fn: (t: T) => IObservable): Air;
concat(src: IObservable): Air;
delay(t: number): Air;
filter(fn: (t: T) => boolean): Air;
flatMap(fn: (t: T) => IObservable): Air;
forEach(fn: (t: T) => void): ISubscription;
join(): Air<{}>;
mapTo(t: S): Air;
map(fn: (t: T) => S): Air;
mergeMap(n: IObservable, project: (t: T) => IObservable): Air;
multicast(): Air;
reduce(fn: (memory: R, current: T) => R, seed: R): Air;
sample(fn: (...e: Array) => T, sources: Array>): Air;
skipRepeats(fn: (a: T, b: T) => boolean): Air;
slice(start: number, count: number): Air;
switchLatest(): Air<{}>;
switchMap(fn: (t: T) => IObservable): Air;
tap(fn: (t: T) => void): Air;
uniqueWith(set: Set): Air;
unique(): Air;
debounce(t: number): Air;
toNodeStream(): Stream;
toPromise(): Promise;
scan(reducer: (memory: R, current: T) => R, seed: R): Air;
static combine(selector: (...t: any[]) => T, sources: IObservable[]): Air<{}>;
static fromNodeStream(node: Readable): Air;
static empty(): Air;
static frames(): Air;
static fromArray(arr: Array): Air;
static fromDOM(el: HTMLElement, event: string): Air;
static fromPromise(fn: () => Promise): Air;
static interval(t: number): Air;
static just(t: T): Air;
static never(): Air;
static of(...t: T[]): Air;
}