123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- 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 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 type TeardownLogic = Unsubscribable | Function | void;
- export interface SubscriptionLike extends Unsubscribable {
- unsubscribe(): void;
- readonly closed: boolean;
- }
- export 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 type ObservableInput<T> = SubscribableOrPromise<T> | ArrayLike<T> | Iterable<T>;
- /** @deprecated use {@link InteropObservable } */
- export type ObservableLike<T> = InteropObservable<T>;
- export 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 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 type ObservedValueOf<O> = O extends ObservableInput<infer T> ? T : never;
- export type ObservedValuesFromArray<X> = X extends Array<ObservableInput<infer T>> ? T : never;
|