# StorageInterface

    public protocol StorageInterface : AnyObject

The `StorageInterface` represents the data store managed (or to be managed) by the `DataStack`. When added to the `DataStack`, the `StorageInterface` serves as the interface for the `NSPersistentStore`. This may be a database file, an in-memory store, etc.

- `storeType`

  The string identifier for the `NSPersistentStore`‘s `type` property. This is the same string CoreStore will use to create the `NSPersistentStore` from the `NSPersistentStoreCoordinator`’s `addPersistentStoreWithType(...)` method.

  #### Declaration

  Swift

      static var storeType: String { get }

- `configuration`

  The configuration name in the model file

  #### Declaration

  Swift

      var configuration: ModelConfiguration { get }

- `storeOptions`

  The options dictionary for the `NSPersistentStore`

  #### Declaration

  Swift

      var storeOptions: [AnyHashable : Any]? { get }

### Internal (Do not call these directly)

- `cs_didAddToDataStack(_:)`

  Do not call directly. Used by the `DataStack` internally.

  #### Declaration

  Swift

      func cs_didAddToDataStack(_ dataStack: DataStack)

- `cs_didRemoveFromDataStack(_:)`

  Do not call directly. Used by the `DataStack` internally.

  #### Declaration

  Swift

      func cs_didRemoveFromDataStack(_ dataStack: DataStack)