import Foundation protocol KeyValueStorage: AnyObject { func getValue(_: T.Type, forKey key: String) -> T? func getValue(_: T.Type, forKey key: String, defaultValue: T?, reportError: Bool) -> T? func setValue(_ maybeValue: T?, forKey key: String) func setValue(_ maybeValue: T?, forKey key: String, reportError: Bool) }