import type { ReadableFamilyToken, ReadableToken, WritableFamilyToken, WritableToken, } from "atom.io" import type { Canonical } from "atom.io/foundations/canonical" import type { Store } from "atom.io/internal" import { findInStore } from "atom.io/internal" export function parseStateOverloads( store: Store, ...rest: [WritableFamilyToken, Key] | [WritableToken] ): WritableToken export function parseStateOverloads( store: Store, ...rest: [ReadableFamilyToken, Key] | [ReadableToken] ): ReadableToken export function parseStateOverloads( store: Store, ...rest: [ReadableFamilyToken, Key] | [ReadableToken] ): ReadableToken { let token: ReadableToken if (rest.length === 2) { const family = rest[0] const key = rest[1] token = findInStore(store, family, key) } else { token = rest[0] } return token }