import { OperationsBase } from "../../base/internal";
import { Thumbnail } from "../../base/types";
import { OperationOptions } from "../OperationOptions";
import { DownloadThumbnailParams, UploadThumbnailParams } from "./ThumbnailOperationParams";
export declare class ThumbnailOperations<TOptions extends OperationOptions> extends OperationsBase<TOptions> {
    /**
     * Downloads a thumbnail for a specific iModel. The Thumbnail returned is either a default one or a custom
     * uploaded one. Wraps the
     * {@link https://developer.bentley.com/apis/imodels-v2/operations/get-imodel-thumbnail/ Download iModel Thumbnail}
     * operation from iModels API.
     * @param {DownloadThumbnailParams} params parameters for this operation. See {@link DownloadThumbnailParams}.
     * @returns {Promise<Thumbnail>} downloaded Thumbnail. See {@link Thumbnail}. The method returns the data in binary
     * form which can then be consumed depending on the environment.
     * @example
     * Save data to local file (Node.js):
     * ```
     *  const thumbnail: Thumbnail = await iModelsClient.thumbnails.download({ ... });
     *  await fs.promises.writeFile("thumbnail.png", Buffer.from(thumbnail.data.buffer), "binary");
     * ```
     */
    download(params: DownloadThumbnailParams): Promise<Thumbnail>;
    /**
     * Uploads a custom iModel Thumbnail. Wraps the
     * {@link https://developer.bentley.com/apis/imodels-v2/operations/upload-imodel-thumbnail/ Upload iModel Thumbnail}
     * operation from iModels API.
     * @param {UploadThumbnailParams} params parameters for this operation. See {@link UploadThumbnailParams}.
     * @returns {Promise<void>} a promise that resolves after operation completes.
     */
    upload(params: UploadThumbnailParams): Promise<void>;
}
//# sourceMappingURL=ThumbnailOperations.d.ts.map