enome
Version:
A genome generation and evolution library.
46 lines (45 loc) • 2.27 kB
TypeScript
import { BehaviorSubject, Observable, Observer, Subject, Subscription } from 'rxjs';
import { IScheduler } from 'rxjs/Scheduler';
export declare class ReactiveCollection<T> {
private pushed;
private popped;
private shifted;
private unshifted;
private removed;
private rotated;
private subs;
private array;
value: T[];
constructor(value?: T[]);
dispose(): void;
subscribeToPush(observer: (value: T) => void | Observer<T>): Subscription;
subscribeToPop(observer: (value: T) => void | Observer<T>): Subscription;
subscribeToShift(observer: (value: T) => void | Observer<T>): Subscription;
subscribeToUnshift(observer: (value: T) => void | Observer<T>): Subscription;
subscribeToRemove(observer: (value: T) => void | Observer<T>): Subscription;
subscribeToRotate(observer: (value: T) => void | Observer<T>): Subscription;
push(value: T): ReactiveCollection<T>;
pop(value: T): T;
shift(): T;
unshift(value: T): ReactiveCollection<T>;
remove(value: T): ReactiveCollection<T>;
removeAt(i: number): ReactiveCollection<T>;
rotate(): T;
rotateEach(action: (value: T) => void): void;
mapCollection<U>(selector: (value: T) => U): ReactiveCollection<U>;
filterCollection(selector: (value: T) => boolean): ReactiveCollection<T>;
forEach(action: (value: T) => void): ReactiveCollection<T>;
subscribe(observer: (value: T[]) => void | Observer<T[]>): Subscription;
filter(selector: (value: T[]) => boolean): Observable<T[]>;
map<U>(selector: (value: T[]) => U): Observable<U>;
debounceWithTimeout(dueTime: number, scheduler?: IScheduler): Observable<T[]>;
debounceWithSelector<TTimeout>(selector: (value: T[]) => Observable<TTimeout>): Observable<T[]>;
bufferTime(timeSpan: number, scheduler?: IScheduler): Observable<T[][]>;
bufferCount(count: number, skip?: number): Observable<T[][]>;
bufferTimeCount(timeSpan: number, count: number, skip?: number, scheduler?: IScheduler): Observable<T[][]>;
zip<U>(other: Observable<U>): Observable<[T[], U]>;
asObservable(): Observable<T[]>;
asObserver(): Observer<T[]>;
asSubject(): Subject<T[]>;
asBehaviourSubject(): BehaviorSubject<T[]>;
}