package aws

import "context"

// S3Client defines the interface for S3 operations needed by checkpoint manager
// This interface allows for easier testing by enabling mock implementations
type S3Client interface {
	// DownloadObjects downloads objects from S3 to a local directory
	DownloadObjects(ctx context.Context, names []string, destinationDir string) error

	// UploadObject uploads a local file to S3
	UploadObject(ctx context.Context, objectName string, sourcefile string) error
}

// Ensure AwsProviderS3 implements S3Client interface
var _ S3Client = (*AwsProviderS3)(nil)
