namespace FileLiberator;
///
/// A step that downloads something Audible delivers through a content license: the audiobook, and the
/// supplement whose link the same license carries.
///
/// One license serves every such step for a title. The request is identical - response_groups asks for
/// pdf_url alongside the content reference - so a run holding a license must hand it on rather than ask
/// for another, which would be a second refusal to record for a title already refused once.
///
///
public interface ILicensedDownload
{
///
/// Optional override to supply license info directly instead of querying the api based on Configuration options
///
DownloadOptions.LicenseInfo? LicenseInfo { get; set; }
///
/// The license this step ended up using, whether supplied or requested, so the next step for the same title
/// can reuse it. Null until a license has been obtained, and reset at the start of every attempt: a
/// Processable instance is reused across books, so a license left behind belongs to a different title.
///
DownloadOptions.LicenseInfo? ObtainedLicense { get; }
}