package core import "github.com/google/uuid" type Subscriber interface { Subscribe() (int16, <-chan string) Unsubscribe(id int16) error } type Publisher interface { Publish(message string) } type Pusher interface { Push(data *sensorData) error } type Storer interface { EnqueuePair(tcp sensorData, ser sensorData) EnqueueRaw(data sensorData) } type Repo interface { Save(tracking Tracking) error LoadAll() ([]TrackingMetadata, error) Load(id uuid.UUID) (Tracking, error) } type Service interface { AllTrackings() NewSetup(cols ...CollectorType) StartRecord() StopRecord() StopAll() LoadTracking(trackingId uuid.UUID) DeleteTracking(trackingId uuid.UUID) StartReplay() PauseReplay() StopReplay() }