import Observable, { UnaryFn } from "./Observable"; /** Simple transform function */ export declare function map(...fns: Array>): (source: Observable) => Observable; /** Only pass value if it is different from the last one */ export declare function changed(fn?: (last: T, current: T) => boolean): (source: Observable) => Observable; /** Only pass value if it has never been seen before */ export declare function distinct(): (source: Observable) => Observable; /** Delay each event by n ms */ export declare function delay(ms: number): (source: Observable) => Observable; /** Only take the latest event and delay by n ms */ export declare function debounce(ms: number): (source: Observable) => Observable; /** Drop values unntil the timer is up */ export declare function throttle(ms: number): (source: Observable) => Observable; /** Reduce over emitted values */ export declare function scan(fn?: (acc: T, x: T) => T): (source: Observable) => Observable; /** Collect n emitted values and complete */ export declare function take(n: number): (source: Observable) => Observable; /** Collect n emitted values and complete */ export declare function filter(fn: (x: T) => boolean): (source: Observable) => Observable; /** Map over outer + inner observable and emit all values */ export declare function flatMap(fn: (x: T) => Observable): (source: Observable) => Observable; /** Only emit from inner observable as long as we are subscribed */ export declare function switchMap(fn: (x: T) => Observable): (source: Observable) => Observable;