package service

import (
	"context"
	"time"
)

type Grib interface {
	Update(ctx context.Context) error
	Extract(ctx context.Context, lat, lon, alt float64, ts time.Time) ([2]float64, error)
	Close() error
}

type Redis interface {
	Lock(ctx context.Context, key string, ttl time.Duration) (func(context.Context), error)
	Set(key string, value []byte, ttl time.Duration) error
	Get(key string) ([]byte, error)
	Close() error
}
