import { DownloadContext } from '../../context';
import { DownloadFileChunkFromCloudRequest, DownloadFileChunkRequest, GetAssetCloudLinkRequest, GetAssetCloudLinkResponse, GetFilesInDownloadTransactionRequest, GetFilesInDownloadTransactionResponse, IDownloadApiClient } from '../../external';
import { ILogger } from '../../utilities';

export declare class DownloadApiClient implements IDownloadApiClient {
    private context;
    private logger;
    private getFilesInDownloadTransactionLastRequestedDate;
    constructor(context: DownloadContext, logger: ILogger);
    private get download();
    /** Get all files in download transaction */
    getFilesInDownloadTransaction(request: GetFilesInDownloadTransactionRequest): Promise<GetFilesInDownloadTransactionResponse>;
    /** Download actual file chunk */
    downloadFileChunk(request: DownloadFileChunkRequest): Promise<ArrayBuffer>;
    /** Download actual file chunk directly from cloud */
    downloadFileChunkFromCloud(request: DownloadFileChunkFromCloudRequest): Promise<ArrayBuffer>;
    getAssetCloudURL(request: GetAssetCloudLinkRequest): Promise<GetAssetCloudLinkResponse>;
}
