type StorageElementPrimaryType = string | number | boolean | undefined | null | StorageElementPrimaryType[]; type StorageElementInternalType = StorageElementPrimaryType | Record | StorageElementInternalType[]; type NonFunctionStorage = string | number | boolean | undefined | null | NonFunctionStorage[] | { [key: string | number | symbol]: NonFunctionStorage; }; /** * StorageElementType are all the types that can be stored in the storage */ type StorageElementType = StorageElementInternalType | Record | { [key: string | number | symbol]: StorageElementType; } | StorageObjectType[] | (StorageElementPrimaryType | StorageElementInternalType | StorageElementType)[] | { [key: string | number | symbol]: NonFunctionStorage; }; /** * StorageObjectType are all the types that can be stored in the storage */ type StorageObjectType = Record; export type { StorageElementType as S, StorageObjectType as a };