ts-bus
Version:
<p align="center"> <img src="logo.png" width="100" height="100"/> </p>
17 lines (16 loc) • 1.15 kB
TypeScript
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 {};