import type { _NSURL } from "./NSURL.js";
import type { _NSURLSession } from "./NSURLSession.js";
import type { _NSURLSessionDownloadTask } from "./NSURLSessionDownloadTask.js";
import type { _NSURLSessionTaskDelegate } from "./NSURLSessionTaskDelegate.js";
export interface _NSURLSessionDownloadDelegate extends _NSURLSessionTaskDelegate {
    /**
     * Sent when a download task that has completed a download. The delegate should copy or move the file at the given location to a new location as it will be removed when the delegate message returns. URLSession:task:didCompleteWithError: will still be called.
     */
    URLSession$downloadTask$didFinishDownloadingToURL$?(session: _NSURLSession, downloadTask: _NSURLSessionDownloadTask, location: _NSURL): void;
    /** Sent periodically to notify the delegate of download progress. */
    URLSession$downloadTask$didWriteData$totalBytesWritten$totalBytesExpectedToWrite$?(session: _NSURLSession, downloadTask: _NSURLSessionDownloadTask, bytesWritten: number, totalBytesWritten: number, totalBytesExpectedToWrite: number): void;
    /**
     * Sent when a download has been resumed. If a download failed with an error, the -userInfo dictionary of the error will contain an NSURLSessionDownloadTaskResumeData key, whose value is the resume data.
     */
    URLSession$downloadTask$didResumeAtOffset$expectedTotalBytes$?(session: _NSURLSession, downloadTask: _NSURLSessionDownloadTask, fileOffset: number, expectedTotalBytes: number): void;
}
