@sandstack/neuron
Version:
Neuron is a lightweight framework agnostic global state manager for Javascript apps, with React support
14 lines (13 loc) • 592 B
TypeScript
import { NeuronKey, INeuronClient } from "../core";
export declare function usePrivateSubscriber<T, A, S>(neuronClient: INeuronClient, neuronKey: NeuronKey, slice?: (state: T) => S): [StateOrSlice<S, T>, Actions<T, S, A>];
export type StateOrSlice<T, S> = unknown extends T ? T extends unknown ? S : T : T;
export type Actions<T, S, A> = unknown extends S ? T extends unknown ? {
set: SetState<T>;
} & A : {
set: SetState<T>;
setSlice: SetState<S>;
} & A : {
set: SetState<T>;
setSlice: SetState<S>;
} & A;
export type SetState<T> = (state: T | ((prev: T) => T)) => void;