import { Changeset, ChangesetOperations as ManagementChangesetOperations } from "@itwin/imodels-client-management";
import { DownloadedChangeset } from "../../base/types";
import { OperationOptions } from "../OperationOptions";
import { CreateChangesetParams, DownloadChangesetListParams, DownloadSingleChangesetParams } from "./ChangesetOperationParams";
export declare class ChangesetOperations<TOptions extends OperationOptions> extends ManagementChangesetOperations<TOptions> {
    /**
     * Creates a Changeset. Wraps the
     * {@link https://developer.bentley.com/apis/imodels-v2/operations/create-imodel-changeset/ Create iModel Changeset}
     * operation from iModels API. Internally it creates a Changeset instance, uploads the Changeset
     * file and confirms Changeset file upload. The execution of this method depends on the Changeset file size - the larger
     * the file, the longer the upload will take.
     * @param {CreateChangesetParams} params parameters for this operation. See {@link CreateChangesetParams}.
     * @returns newly created Changeset. See {@link Changeset}.
     */
    create(params: CreateChangesetParams): Promise<Changeset>;
    /**
     * Downloads a single Changeset identified by either index or id. If an error occurs when downloading a Changeset
     * this operation queries the failed Changeset by id and retries the download once. If the Changeset file with
     * the expected name already exists in the target directory and the file size matches the one expected the Changeset
     * is not downloaded again.
     * @param {DownloadSingleChangesetParams} params parameters for this operation. See {@link DownloadSingleChangesetParams}.
     * @returns downloaded Changeset. See {@link DownloadedChangeset}.
     */
    downloadSingle(params: DownloadSingleChangesetParams): Promise<DownloadedChangeset>;
    /**
     * Downloads Changeset list. Internally the method uses {@link ChangesetOperations.getRepresentationList} to query the
     * Changeset collection so this operation supports most of the the same url parameters to specify what Changesets to
     * download. One of the most common properties used are `afterIndex` and `lastIndex` to download Changeset range. This
     * operation downloads Changesets in parallel. If an error occurs when downloading a Changeset this operation queries
     * the failed Changeset by id and retries the download once. If the Changeset file with the expected name already
     * exists in the target directory and the file size matches the one expected the Changeset is not downloaded again.
     * @param {DownloadChangesetListParams} params parameters for this operation. See {@link DownloadChangesetListParams}.
     * @returns downloaded Changeset metadata along with the downloaded file path. See {@link DownloadedChangeset}.
     */
    downloadList(params: DownloadChangesetListParams): Promise<DownloadedChangeset[]>;
    private getCreateChangesetRequestBody;
    private getConfirmUploadRequestBody;
    private downloadSingleChangeset;
    private downloadChangesetFileWithRetry;
    private isChangesetAlreadyDownloaded;
    private createFileName;
    private provideDownloadCallbacks;
    private throwIfAbortError;
}
//# sourceMappingURL=ChangesetOperations.d.ts.map