UNPKG

3.48 kBTypeScriptView Raw
1import { Observable } from './Observable';
2import { Subscription } from './Subscription';
3/**
4 * Note: This will add Symbol.observable globally for all TypeScript users,
5 * however, we are no longer polyfilling Symbol.observable
6 */
7declare global {
8 interface SymbolConstructor {
9 readonly observable: symbol;
10 }
11}
12/** OPERATOR INTERFACES */
13export interface UnaryFunction<T, R> {
14 (source: T): R;
15}
16export interface OperatorFunction<T, R> extends UnaryFunction<Observable<T>, Observable<R>> {
17}
18export declare type FactoryOrValue<T> = T | (() => T);
19export interface MonoTypeOperatorFunction<T> extends OperatorFunction<T, T> {
20}
21export interface Timestamp<T> {
22 value: T;
23 timestamp: number;
24}
25export interface TimeInterval<T> {
26 value: T;
27 interval: number;
28}
29/** SUBSCRIPTION INTERFACES */
30export interface Unsubscribable {
31 unsubscribe(): void;
32}
33export declare type TeardownLogic = Unsubscribable | Function | void;
34export interface SubscriptionLike extends Unsubscribable {
35 unsubscribe(): void;
36 readonly closed: boolean;
37}
38export declare type SubscribableOrPromise<T> = Subscribable<T> | Subscribable<never> | PromiseLike<T> | InteropObservable<T>;
39/** OBSERVABLE INTERFACES */
40export interface Subscribable<T> {
41 subscribe(observer?: PartialObserver<T>): Unsubscribable;
42 /** @deprecated Use an observer instead of a complete callback */
43 subscribe(next: null | undefined, error: null | undefined, complete: () => void): Unsubscribable;
44 /** @deprecated Use an observer instead of an error callback */
45 subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Unsubscribable;
46 /** @deprecated Use an observer instead of a complete callback */
47 subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Unsubscribable;
48 subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Unsubscribable;
49}
50export declare type ObservableInput<T> = SubscribableOrPromise<T> | ArrayLike<T> | Iterable<T>;
51/** @deprecated use {@link InteropObservable } */
52export declare type ObservableLike<T> = InteropObservable<T>;
53export declare type InteropObservable<T> = {
54 [Symbol.observable]: () => Subscribable<T>;
55};
56/** OBSERVER INTERFACES */
57export interface NextObserver<T> {
58 closed?: boolean;
59 next: (value: T) => void;
60 error?: (err: any) => void;
61 complete?: () => void;
62}
63export interface ErrorObserver<T> {
64 closed?: boolean;
65 next?: (value: T) => void;
66 error: (err: any) => void;
67 complete?: () => void;
68}
69export interface CompletionObserver<T> {
70 closed?: boolean;
71 next?: (value: T) => void;
72 error?: (err: any) => void;
73 complete: () => void;
74}
75export declare type PartialObserver<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;
76export interface Observer<T> {
77 closed?: boolean;
78 next: (value: T) => void;
79 error: (err: any) => void;
80 complete: () => void;
81}
82/** SCHEDULER INTERFACES */
83export interface SchedulerLike {
84 now(): number;
85 schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay?: number, state?: T): Subscription;
86}
87export interface SchedulerAction<T> extends Subscription {
88 schedule(state?: T, delay?: number): Subscription;
89}
90export declare type ObservedValueOf<O> = O extends ObservableInput<infer T> ? T : never;
91export declare type ObservedValuesFromArray<X> = X extends Array<ObservableInput<infer T>> ? T : never;
92
\No newline at end of file