import type { _NSCoding } from "../Foundation/NSCoding.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { BADownloadState } from "./BADownloadState.js";
import type { BADownloaderPriority } from "./BADownloaderPriority.js";
export declare class _BADownload extends _NSObject {
    static alloc(): _BADownload;
    static new(): _BADownload;
    init(): _BADownload;
    /**
     * @brief Copies an existing download ensuring that it has `isEssential == false`. @discussion This serves as a convenience method for constructing a non-essential representation of an existing download. It is important to note that essential downloads can only be enqueued by the app extension during a content request. If an essential download fails, `copyAsNonEssential` can be used to create a copy with `isEssential == false` that can be re-queued with `BADownloadManager`.
     */
    copyAsNonEssential(): _BADownload;
    /** @brief The current state of the respresented download. */
    state(): BADownloadState;
    /** @brief A client defined identifier that uniquely identifies this asset. */
    identifier(): _NSString;
    /** @brief A UUID that uniquely identifies the download object. */
    uniqueIdentifier(): _NSString;
    /** @brief A client set priority to try to order downloads in order of importance */
    priority(): BADownloaderPriority;
    /**
     * @brief Whether this download is essential. Essential downloads will occur while the app is being installed. Users cannot launch the app while these downloads are occurring. Essential downloads cannot be scheduled with `BADownloadManager`, they may only be scheduled from the extension with a `BAContentRequest` type of `Update` or `Install`. Essential downloads must have an accurate `fileSize` or they will fail.
     */
    isEssential(): boolean;
}
export interface _BADownload extends _NSCoding, _NSSecureCoding, _NSCopying {
}
