package objectstorage

import (
	"io"
	"time"
)

type CompressionType int

const (
	NoCompression CompressionType = iota
	Gzip
	Brotli
	Zstd
)

const NoContentEncoding = ""

type ObjectStorage interface {
	Upload(reader io.Reader, key string, contentType, contentEncoding string, compression CompressionType) error
	Get(key string) (io.ReadCloser, error)
	Exists(key string) bool
	GetCreationTime(key string) *time.Time
	GetPreSignedUploadUrl(key string) (string, error)
	GetPreSignedDownloadUrl(key string) (string, error)
}
