UNPKG

abon

Version:

Flexible state management for React 🚀

33 lines (32 loc) • 1.23 kB
export interface UnsubscribeFn { (): void; } export interface Listener { (): void; } export interface ChangeListener<T> { (current: T): void; } export interface ValueHandler<T> { (current: T): void; } export interface EventListener<E, P> { (event: E, payload: P): void; } export interface EventPayloadListener<P> { (payload: P): void; } export interface ItemsChangeListener<T extends object, I extends keyof T> { (current: ItemRecord<T, I>, items: T[], ids: T[I][]): any; } export declare type ItemRecordKey<T extends object, I extends keyof T> = T[I] & (string | number | symbol); export declare type ItemRecord<T extends object, I extends keyof T> = Record<ItemRecordKey<T, I>, T>; export interface Subscribeable<T> { subscribe(listener: ChangeListener<T>): UnsubscribeFn; } export declare type SubscriberFlexResult = UnsubscribeFn | boolean | undefined | null | void; export declare type ComposedSubscriberFlexResult = SubscriberFlexResult | Iterable<SubscriberFlexResult>; export declare type ComposedSubscriberFlex = (listener: () => void) => ComposedSubscriberFlexResult; export interface AsyncChangeListener<T> { (current: T): void | Promise<void>; }