namespace Beam.Models;

public enum DownloadTarget {
    /// <summary>
    /// Specifies the target as the object directly returned through accessing the URL (whole page).
    /// </summary>
    /// <remarks>
    /// Default to this mode where possible.
    /// </remarks>
    URL,
    /// <summary>
    /// Specifies the target as an object accessible only through the url (element in page). 
    /// </summary>
    /// <remarks>
    /// Only use this mode if what is needed
    /// cannot be acquired by using <see cref="DownloadTarget.URL"/>
    /// </remarks>
    InURL,
    /// <summary>
    /// Specifies the target as an object that may be retrieved through a user-defined operation on the url
    /// (e.g. javascript triggered downloads). 
    /// </summary>
    /// <remarks>
    /// Only use this mode if what is needed cannot be acquired by either
    /// <see cref="URL"/> or <see cref="InURL"/>
    /// </remarks>
    Complex
}