import { AnyAtomInstance, AnyAtomTemplate, AtomExportsType, AtomParamsType, AtomStateType, ParamlessTemplate, StateHookTuple, } from '../types/index' import { injectAtomInstance } from './injectAtomInstance' export const injectAtomState: { ( template: A, params: AtomParamsType ): StateHookTuple, AtomExportsType> >(template: A): StateHookTuple< AtomStateType, AtomExportsType > (template: ParamlessTemplate): StateHookTuple< AtomStateType, AtomExportsType > (instance: I): StateHookTuple< AtomStateType, AtomExportsType > } = ( atom: A, params?: AtomParamsType ): StateHookTuple, AtomExportsType> => { const instance = injectAtomInstance(atom, params as AtomParamsType, { operation: 'injectAtomState', subscribe: true, }) return [instance.getState(), instance._infusedSetter] }