export type Listener = (state: S, prevState: S) => void; export type Selector = (state: S) => Selected; export type EqualityFn = (a: T, b: T) => boolean; /** * Minimum store API required for subscription. */ export type SubscribableStore = { subscribe(selector: Selector, listener: () => void, options?: SubscribeOptions): UnsubscribeFn; }; export type SubscribeOptions = { equalityFn?: EqualityFn; fireImmediately?: boolean; }; export type ListenerArgs = [listener: Listener]; export type SelectorArgs = [ selector: Selector, listener: Listener, options?: SubscribeOptions ]; export type SubscribeArgs = ListenerArgs | SelectorArgs; export type UnsubscribeFn = () => void; export type SubscribeFn = (...args: SubscribeArgs) => UnsubscribeFn; export type SubscribeOverloads = { (listener: Listener): UnsubscribeFn; (selector: Selector, listener: Listener, options?: SubscribeOptions): UnsubscribeFn; }; //# sourceMappingURL=subscribe.d.ts.map