import { UmbImagingCropMode, type UmbImagingResizeModel } from './types.js';
import { UmbRepositoryBase } from '../../core/repository/index.js';
import type { UmbControllerHost } from '../../../libs/controller-api/index.js';
import type { UmbApi } from '../../../libs/extension-api/index.js';
import type { UmbMediaUrlModel } from '../media/index.js';
/**
 * Repository for managing imaging-related data.
 * You can use it to request (cached) thumbnail URLs or new resized images.
 */
export declare class UmbImagingRepository extends UmbRepositoryBase implements UmbApi {
    #private;
    constructor(host: UmbControllerHost);
    /**
     * Requests the items for the given uniques
     * @param {Array<string>} uniques - The uniques
     * @param {UmbImagingResizeModel} imagingModel - The imaging model
     * @returns {Promise<{ data: UmbMediaUrlModel[] }>} - The resized absolute media URLs
     * @memberof UmbImagingRepository
     */
    requestResizedItems(uniques: Array<string>, imagingModel?: UmbImagingResizeModel): Promise<{
        data: UmbMediaUrlModel[];
    }>;
    /**
     * Internal method to clear the cache for a specific image.
     * @param {string} unique The unique identifier for the media item
     * @internal
     */
    _internal_clearCropByUnique(unique: string): Promise<void>;
    /**
     * Requests the thumbnail URLs for the given uniques
     * @param {Array<string>} uniques - The unique identifiers for the media items
     * @param {number} height - The desired height in pixels of the thumbnail
     * @param {number} width - The desired width in pixels of the thumbnail
     * @param {UmbImagingCropMode} mode - The crop mode
     * @returns {Promise<{ data: UmbMediaUrlModel[] }>} - The resized absolute media URLs
     * @memberof UmbImagingRepository
     * @deprecated Use {@link UmbImagingRepository#requestResizedItems} instead for more flexibility and control over the imaging model. This will be removed in Umbraco 18.
     */
    requestThumbnailUrls(uniques: Array<string>, height: number, width: number, mode?: UmbImagingCropMode): Promise<{
        data: UmbMediaUrlModel[];
    }>;
}
export { UmbImagingRepository as api };
