UNPKG

ts-bus

Version:

<p align="center"> <img src="logo.png" width="100" height="100"/> </p>

17 lines (16 loc) 1.15 kB
import { EventBus } from "./EventBus"; import { BusEvent, DispatchFn, SubscribeFn, SubscriptionDef, UnsubscribeFn } from "./types"; export declare type InitFn<T> = (a: any) => T; export declare type ReducerFn<S, E> = (s: S, e: E) => S; export declare type UseReducerFn<T, E> = (reducer: ReducerFn<T, E>, initState: any, init: InitFn<T>) => [T, any]; export declare function _defaultSubscriber<E extends BusEvent>(dispatch: DispatchFn<E>, bus: EventBus): UnsubscribeFn; export declare const reducerSubscriber: <E extends BusEvent<any>>(...definition: SubscriptionDef<E>[]) => SubscribeFn<E>; export declare function useBusReducer<E extends BusEvent = BusEvent, T = any>(reducer: ReducerFn<T, E>, initState: any, init?: InitFn<T>): any; export declare namespace useBusReducer { var configure: <E extends BusEvent<any> = BusEvent<any>>(options: UseBusReducerOptions<E, any>) => (reducer: ReducerFn<any, E>, initState: any, init?: InitFn<any>) => any; } declare type UseBusReducerOptions<E extends BusEvent, T = any> = { subscriber?: SubscribeFn<E>; useReducer?: (reducer: ReducerFn<T, E>, initState: T, init: InitFn<T>) => any; }; export {};