import { Observable } from './Observable';
|
import { Subscription } from './Subscription';
|
/**
|
* Note: This will add Symbol.observable globally for all TypeScript users,
|
* however, we are no longer polyfilling Symbol.observable
|
*/
|
declare global {
|
interface SymbolConstructor {
|
readonly observable: symbol;
|
}
|
}
|
/** OPERATOR INTERFACES */
|
export interface UnaryFunction<T, R> {
|
(source: T): R;
|
}
|
export interface OperatorFunction<T, R> extends UnaryFunction<Observable<T>, Observable<R>> {
|
}
|
export declare type FactoryOrValue<T> = T | (() => T);
|
export interface MonoTypeOperatorFunction<T> extends OperatorFunction<T, T> {
|
}
|
export interface Timestamp<T> {
|
value: T;
|
timestamp: number;
|
}
|
export interface TimeInterval<T> {
|
value: T;
|
interval: number;
|
}
|
/** SUBSCRIPTION INTERFACES */
|
export interface Unsubscribable {
|
unsubscribe(): void;
|
}
|
export declare type TeardownLogic = Unsubscribable | Function | void;
|
export interface SubscriptionLike extends Unsubscribable {
|
unsubscribe(): void;
|
readonly closed: boolean;
|
}
|
export declare type SubscribableOrPromise<T> = Subscribable<T> | Subscribable<never> | PromiseLike<T> | InteropObservable<T>;
|
/** OBSERVABLE INTERFACES */
|
export interface Subscribable<T> {
|
subscribe(observer?: PartialObserver<T>): Unsubscribable;
|
/** @deprecated Use an observer instead of a complete callback */
|
subscribe(next: null | undefined, error: null | undefined, complete: () => void): Unsubscribable;
|
/** @deprecated Use an observer instead of an error callback */
|
subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Unsubscribable;
|
/** @deprecated Use an observer instead of a complete callback */
|
subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Unsubscribable;
|
subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Unsubscribable;
|
}
|
export declare type ObservableInput<T> = SubscribableOrPromise<T> | ArrayLike<T> | Iterable<T>;
|
/** @deprecated use {@link InteropObservable } */
|
export declare type ObservableLike<T> = InteropObservable<T>;
|
export declare type InteropObservable<T> = {
|
[Symbol.observable]: () => Subscribable<T>;
|
};
|
/** OBSERVER INTERFACES */
|
export interface NextObserver<T> {
|
closed?: boolean;
|
next: (value: T) => void;
|
error?: (err: any) => void;
|
complete?: () => void;
|
}
|
export interface ErrorObserver<T> {
|
closed?: boolean;
|
next?: (value: T) => void;
|
error: (err: any) => void;
|
complete?: () => void;
|
}
|
export interface CompletionObserver<T> {
|
closed?: boolean;
|
next?: (value: T) => void;
|
error?: (err: any) => void;
|
complete: () => void;
|
}
|
export declare type PartialObserver<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;
|
export interface Observer<T> {
|
closed?: boolean;
|
next: (value: T) => void;
|
error: (err: any) => void;
|
complete: () => void;
|
}
|
/** SCHEDULER INTERFACES */
|
export interface SchedulerLike {
|
now(): number;
|
schedule<T>(work: (this: SchedulerAction<T>, state?: T) => void, delay?: number, state?: T): Subscription;
|
}
|
export interface SchedulerAction<T> extends Subscription {
|
schedule(state?: T, delay?: number): Subscription;
|
}
|
export declare type ObservedValueOf<O> = O extends ObservableInput<infer T> ? T : never;
|
export declare type ObservedValuesFromArray<X> = X extends Array<ObservableInput<infer T>> ? T : never;
|