UNPKG

mahler

Version:

A automated task composer and HTN based planner for building autonomous system agents

63 lines (62 loc) 2.05 kB
export declare class UnhandledObservableError extends Error { constructor(cause?: unknown); } export type Next<T> = (t: T) => void; export interface Observer<T> { next: Next<T>; error<E extends Error>(e: E): void; complete(): void; } export interface Subscription { unsubscribe(): void; } export interface Subscribable<T> { subscribe(subscriber: Observer<T> | Next<T>): Subscription; } export interface Observable<T> extends Subscribable<T> { /** * Transform a stream of values passing it through * a mapping function */ map<U>(f: (t: T) => U): Observable<U>; /** * Create a new stream only for values that match a * certain filtering function */ filter(f: (t: T) => boolean): Observable<T>; } /** * A Subject is a special type of observable tha allows values to be * multicasted to many observers. * * We use the name Subject as is the terminology used by rxjs * https://rxjs.dev/guide/subject */ export declare class Subject<T> implements Observer<T>, Subscribable<T> { private subscribers; private cleanup; next(t: T): void; error(e: Error): void; complete(): void; subscribe(next: Observer<T> | Next<T>): Subscription; } type ObservableInput<T> = PromiseLike<T> | Iterable<T> | AsyncIterable<T> | Subscribable<T>; declare function from<T>(input: ObservableInput<T>): Observable<T>; declare function map<T, U>(o: Subscribable<T>, f: (t: T) => U): Subscribable<U>; declare function filter<T>(o: Subscribable<T>, f: (t: T) => boolean): Subscribable<T>; declare function of<T>(...values: T[]): Observable<T>; declare function is<T>(x: unknown): x is Observable<T>; /** * Utility function to return a value on an interval. * This is a useful observable to build new observables from */ export declare function interval(periodMs: number): Observable<number>; export declare const Observable: { of: typeof of; from: typeof from; is: typeof is; map: typeof map; filter: typeof filter; interval: typeof interval; }; export {};