1 | import { Observable } from './Observable';
|
---|
2 | import { 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 | */
|
---|
7 | declare global {
|
---|
8 | interface SymbolConstructor {
|
---|
9 | readonly observable: symbol;
|
---|
10 | }
|
---|
11 | }
|
---|
12 | /** OPERATOR INTERFACES */
|
---|
13 | export interface UnaryFunction<T, R> {
|
---|
14 | (source: T): R;
|
---|
15 | }
|
---|
16 | export interface OperatorFunction<T, R> extends UnaryFunction<Observable<T>, Observable<R>> {
|
---|
17 | }
|
---|
18 | export declare type FactoryOrValue<T> = T | (() => T);
|
---|
19 | export interface MonoTypeOperatorFunction<T> extends OperatorFunction<T, T> {
|
---|
20 | }
|
---|
21 | export interface Timestamp<T> {
|
---|
22 | value: T;
|
---|
23 | timestamp: number;
|
---|
24 | }
|
---|
25 | export interface TimeInterval<T> {
|
---|
26 | value: T;
|
---|
27 | interval: number;
|
---|
28 | }
|
---|
29 | /** SUBSCRIPTION INTERFACES */
|
---|
30 | export interface Unsubscribable {
|
---|
31 | unsubscribe(): void;
|
---|
32 | }
|
---|
33 | export declare type TeardownLogic = Unsubscribable | Function | void;
|
---|
34 | export interface SubscriptionLike extends Unsubscribable {
|
---|
35 | unsubscribe(): void;
|
---|
36 | readonly closed: boolean;
|
---|
37 | }
|
---|
38 | export declare type SubscribableOrPromise<T> = Subscribable<T> | Subscribable<never> | PromiseLike<T> | InteropObservable<T>;
|
---|
39 | /** OBSERVABLE INTERFACES */
|
---|
40 | export 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 | }
|
---|
50 | export declare type ObservableInput<T> = SubscribableOrPromise<T> | ArrayLike<T> | Iterable<T>;
|
---|
51 | /** @deprecated use {@link InteropObservable } */
|
---|
52 | export declare type ObservableLike<T> = InteropObservable<T>;
|
---|
53 | export declare type InteropObservable<T> = {
|
---|
54 | [Symbol.observable]: () => Subscribable<T>;
|
---|
55 | };
|
---|
56 | /** OBSERVER INTERFACES */
|
---|
57 | export interface NextObserver<T> {
|
---|
58 | closed?: boolean;
|
---|
59 | next: (value: T) => void;
|
---|
60 | error?: (err: any) => void;
|
---|
61 | complete?: () => void;
|
---|
62 | }
|
---|
63 | export interface ErrorObserver<T> {
|
---|
64 | closed?: boolean;
|
---|
65 | next?: (value: T) => void;
|
---|
66 | error: (err: any) => void;
|
---|
67 | complete?: () => void;
|
---|
68 | }
|
---|
69 | export interface CompletionObserver<T> {
|
---|
70 | closed?: boolean;
|
---|
71 | next?: (value: T) => void;
|
---|
72 | error?: (err: any) => void;
|
---|
73 | complete: () => void;
|
---|
74 | }
|
---|
75 | export declare type PartialObserver<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;
|
---|
76 | export interface Observer<T> {
|
---|
77 | closed?: boolean;
|
---|
78 | next: (value: T) => void;
|
---|
79 | error: (err: any) => void;
|
---|
80 | complete: () => void;
|
---|
81 | }
|
---|
82 | /** SCHEDULER INTERFACES */
|
---|
83 | export interface SchedulerLike {
|
---|
84 | now(): number;
|
---|
85 | schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay?: number, state?: T): Subscription;
|
---|
86 | }
|
---|
87 | export interface SchedulerAction<T> extends Subscription {
|
---|
88 | schedule(state?: T, delay?: number): Subscription;
|
---|
89 | }
|
---|
90 | export declare type ObservedValueOf<O> = O extends ObservableInput<infer T> ? T : never;
|
---|
91 | export declare type ObservedValuesFromArray<X> = X extends Array<ObservableInput<infer T>> ? T : never;
|
---|