package storage import ( "context" "io" ) // Storage interface for cloud storage operations type Storage interface { // Upload uploads data to the specified key Upload(ctx context.Context, key string, data io.Reader, size int64) error // Download downloads data from the specified key Download(ctx context.Context, key string) (io.ReadCloser, error) // Delete deletes the specified key Delete(ctx context.Context, key string) error // Exists checks if the key exists Exists(ctx context.Context, key string) (bool, error) // List lists all keys with the given prefix List(ctx context.Context, prefix string) ([]string, error) // ListProjects returns all project directories ListProjects(ctx context.Context) ([]string, error) // TestConnection tests the connection to storage TestConnection(ctx context.Context) error }