package api

import (
	"github.com/tech/sendico/pkg/auth"
	"github.com/tech/sendico/pkg/db"
	"github.com/tech/sendico/pkg/domainprovider"
	"github.com/tech/sendico/pkg/mlogger"
	"github.com/tech/sendico/pkg/mservice"
)

type API interface {
	Logger() mlogger.Logger
	DomainProvider() domainprovider.DomainProvider
	Config() *Config
	DBFactory() db.Factory
	Permissions() auth.Provider
	Register() Register
}

type MicroServiceFactoryT = func(API) (mservice.MicroService, error)
