import { Dispatch, SetStateAction } from 'react'; type StateSelfUpdater = (prevState: T) => T; type OnStateChangeHandler = (value: T, ...args: any[]) => void; interface UseStateControllerParams { value?: T; defaultValue?: T; onChange?: OnStateChangeHandler; shouldUpdate?: (prev: T, next: T) => boolean; } type UseStateControllerResponse = [T, Dispatch>]; export { OnStateChangeHandler, StateSelfUpdater, UseStateControllerParams, UseStateControllerResponse };