package storageimport ("context""io/fs""github.com/navidrome/navidrome/model/metadata")type Storage interface {FS() (MusicFS, error)}// MusicFS is an interface that extends the fs.FS interface with the ability to read tags from filestype MusicFS interface {fs.FSReadTags(path ...string) (map[string]metadata.Info, error)}// Watcher is a storage with the ability watch the FS and notify changestype Watcher interface {// Start starts a watcher on the whole FS and returns a channel to send detected changes.// The watcher must be stopped when the context is done.Start(context.Context) (<-chan string, error)}