// key-values for loose autocomplete and typing export type StorageItemMap = { recentConnectorId: string } export type Storage< itemMap extends Record = Record, /// storageItemMap extends StorageItemMap = StorageItemMap & itemMap, > = { key: string getItem< key extends keyof storageItemMap, value extends storageItemMap[key], defaultValue extends value | null | undefined, >( key: key, defaultValue?: defaultValue | undefined ): | (defaultValue extends null ? value | null : value) | Promise setItem< key extends keyof storageItemMap, value extends storageItemMap[key] | null, >(key: key, value: value): void | Promise removeItem(key: keyof storageItemMap): void | Promise }