package download import "context" type DownloadProgress struct { ID string `json:"id"` Name string `json:"name"` Status string `json:"status"` Progress float64 `json:"progress"` Speed int64 `json:"speed"` ETA int `json:"eta"` Size int64 `json:"size"` } type CompletedDownload struct { ID string `json:"id"` Name string `json:"name"` OutputPath string `json:"output_path"` Size int64 `json:"size"` Status string `json:"status"` } type DownloadClient interface { Add(ctx context.Context, url string, category string) (string, error) GetProgress(ctx context.Context, id string) (*DownloadProgress, error) GetCompleted(ctx context.Context) ([]CompletedDownload, error) Remove(ctx context.Context, id string) error Pause(ctx context.Context, id string) error Resume(ctx context.Context, id string) error }