zustand
Version:
🐻 Bear necessities for state management in React
20 lines (19 loc) • 1.24 kB
TypeScript
import { EqualityChecker, GetState, SetState, State, StateListener, StateSelector, StateSliceListener, StoreApi } from '../vanilla';
export declare type StoreApiWithSubscribeWithSelector<T extends State> = Omit<StoreApi<T>, 'subscribe'> & {
subscribe: {
(listener: StateListener<T>): () => void;
<StateSlice>(selector: StateSelector<T, StateSlice>, listener: StateSliceListener<StateSlice>, options?: {
equalityFn?: EqualityChecker<StateSlice>;
fireImmediately?: boolean;
}): () => void;
};
};
export declare const subscribeWithSelector: <S extends object, CustomSetState extends SetState<S>, CustomGetState extends GetState<S>, CustomStoreApi extends StoreApi<S>>(fn: (set: CustomSetState, get: CustomGetState, api: CustomStoreApi) => S) => (set: CustomSetState, get: CustomGetState, api: Omit<CustomStoreApi, "subscribe"> & Omit<StoreApi<S>, "subscribe"> & {
subscribe: {
(listener: StateListener<S>): () => void;
<StateSlice>(selector: StateSelector<S, StateSlice>, listener: StateSliceListener<StateSlice>, options?: {
equalityFn?: EqualityChecker<StateSlice>;
fireImmediately?: boolean;
} | undefined): () => void;
};
}) => S;