import { Readable, Subscriber } from './public.js'; | |
/** Cleanup logic callback. */ | |
export type Invalidator<T> = (value?: T) => void; | |
/** Pair of subscriber and invalidator. */ | |
export type SubscribeInvalidateTuple<T> = [Subscriber<T>, Invalidator<T>]; | |
/** One or more `Readable`s. */ | |
export type Stores = | |
| Readable<any> | |
| [Readable<any>, ...Array<Readable<any>>] | |
| Array<Readable<any>>; | |
/** One or more values from `Readable` stores. */ | |
export type StoresValues<T> = T extends Readable<infer U> | |
? U | |
: { [K in keyof T]: T[K] extends Readable<infer U> ? U : never }; | |