package base import ( "context" "github.com/Neur0toxine/sshpoke/internal/config" "github.com/Neur0toxine/sshpoke/pkg/dto" "go.uber.org/zap" ) type DriverConstructor func(ctx context.Context, name string, params config.DriverParams) (Driver, error) type EventStatusCallback func(status dto.EventStatus) type Driver interface { Name() string SetEventStatusCallback(callback EventStatusCallback) PushEventStatus(status dto.EventStatus) Handle(event dto.Event) error Driver() config.DriverType Log() *zap.SugaredLogger WaitForShutdown() }