import { NonEmptyArray } from '../../../helpers/array-helpers';
import { MediaItemFileType } from '../../Documents/Document.types';
import { InternalFile } from '../MediaItemSelectInput';
import { MediaItemTransformer } from './MediaItemTransformer';
type ImageCropperTransformerProps = {
    options?: Cropper.Options;
};
/**
 * A MediaItemTransformer for cropping image MediaItems.
 * Extends the MediaItemTransformer class to provide cropping functionality using an image cropper modal.
 */
export declare class ImageCropperTransformer extends MediaItemTransformer {
    /**
     * Specifies the file types this transformer can handle.
     * Includes generic image types and specific formats like JPEG, JPG, and PNG.
     */
    applicableFileTypes: NonEmptyArray<MediaItemFileType>;
    /**
     * Optional configuration options for the image cropper.
     */
    imageCropperOptions?: Cropper.Options;
    /**
     * Determines whether the file dialog should close after cropping is completed.
     */
    /**
     * Internal property to store the resolve function of the transform promise.
     * Used to resolve the promise when the crop operation is completed.
     */
    private resolveTransformPromise?;
    /**
     * Constructor for the ImageCropperTransformer.
     * @param config - Configuration options for the transformer, including cropper options.
     */
    constructor(config: ImageCropperTransformerProps);
    /**
     * Asynchronous method to transform an array of files using the image cropper modal.
     * Displays the cropper for the first file in the list and resolves with the transformed file(s) or null.
     *
     * @param files - An array of files to be transformed.
     * @returns A promise that resolves to the transformed files or null.
     */
    transform: (files: InternalFile[]) => Promise<InternalFile[] | null>;
    /**
     * Function: Open Cropper
     */
    private openImageCropper;
}
export {};
