73b73aca542e1638385dccb1c840bf6fafd59abbee32654bf85d48e53fe38b9c85e9dc107e83d507d2fcfbad7531863bf87f12ff73a789e8255a26b7dd739b 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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;