pub(crate) type KVStorePermissions = KVStorePermissionsComponentType<TicKVKVStoreComponentType<TicKVDedicatedFlashComponentType<Mx25r6435fComponentType<SPIM<'static>, GPIOPin<'static>, Rtc<'static>>, Siphasher24ComponentType, TICKV_PAGE_SIZE>, TicKVKeyType>>;
struct KVStorePermissions {
kv: &'static TicKVKVStore<'static, TicKVSystem<'static, MX25R6435F<'static, VirtualSpiMasterDevice<'static, SPIM<'static>>, GPIOPin<'static>, VirtualMuxAlarm<'static, Rtc<'static>>>, SipHasher24<'static>, 4096>, [u8; 8]>,
header_value: TakeCell<'static, [u8]>,
client: OptionalCell<&'static dyn KVClient>,
operation: OptionalCell<Operation>,
value: MapCell<SubSliceMut<'static, u8>>,
valid_ids: OptionalCell<StoragePermissions>,
}