func Watch(path ...string) (Watcher, error) {
	return DefaultConfig.Watch(path...)
}
Watch a value for changes
package lion
import (
	"context"
	"github.com/dotamixer/doom/pkg/lion/loader"
	"github.com/dotamixer/doom/pkg/lion/reader"
	"github.com/dotamixer/doom/pkg/lion/source"
)
type Config interface {
	reader.Values
	Close() error
	Load(source ...source.Source) error
	Sync() error
	Watch(path ...string) (Watcher, error)
}
type Watcher interface {
	Next() (reader.Value, error)
	Stop() error
}
type Options struct {
	Loader loader.Loader
	Reader reader.Reader
	Source []source.Source
	Context context.Context
}
type Option func(o *Options)
var (
	DefaultConfig = NewConfig()
)
func NewConfig(opts ...Option) Config {
	return newConfig(opts...)
}
func Bytes() []byte {
	return DefaultConfig.Bytes()
}
func Map() map[string]interface{} {
	return DefaultConfig.Map()
}
func Scan(v interface{}) error {
	return DefaultConfig.Scan(v)
}
func Sync() error {
	return DefaultConfig.Sync()
}
func Get(path ...string) reader.Value {
	return DefaultConfig.Get(path...)
}
func Load(source ...source.Source) error {
	return DefaultConfig.Load(source...)
}