Subscription.d.ts 840 B

12345678910111213141516171819202122232425
  1. declare type VoidFunc = () => void;
  2. declare type Listener = {
  3. callback: VoidFunc;
  4. next: Listener | null;
  5. prev: Listener | null;
  6. };
  7. declare function createListenerCollection(): {
  8. clear(): void;
  9. notify(): void;
  10. get(): Listener[];
  11. subscribe(callback: () => void): () => void;
  12. };
  13. declare type ListenerCollection = ReturnType<typeof createListenerCollection>;
  14. export interface Subscription {
  15. addNestedSub: (listener: VoidFunc) => VoidFunc;
  16. notifyNestedSubs: VoidFunc;
  17. handleChangeWrapper: VoidFunc;
  18. isSubscribed: () => boolean;
  19. onStateChange?: VoidFunc | null;
  20. trySubscribe: VoidFunc;
  21. tryUnsubscribe: VoidFunc;
  22. getListeners: () => ListenerCollection;
  23. }
  24. export declare function createSubscription(store: any, parentSub?: Subscription): Subscription;
  25. export {};