import { IWebComponentInstance } from "../../../..";
import "../../ImageTransformer.css";
import { OmniaTheming, VueComponentBase } from "../../..";
import { ImageTransformerLocalization } from "../../loc/localize";
import { MediaPickerCropTransformation, MediaPickerImageRatio, MediaPickerTransformation, ImageCropzoneRect, MediaPickerImageRatioDefinition } from "../../../../models";
import { MultilingualStore, MediaPickerStore } from "../../../../stores";
import IImageEditor from "../../tui-image-editor/interfaces";
export interface ImageTransformCropperProps {
    imageTransformationData?: Array<MediaPickerTransformation>;
    editorInstance: IImageEditor;
    selectableRatios?: Array<MediaPickerImageRatioDefinition>;
    changedImageCropAreaCallback?: (cropData: MediaPickerCropTransformation) => void;
    shareableRenditions?: Array<MediaPickerCropTransformation>;
    selectedRenditionId?: {
        value: number;
    };
    isShowWarningDialog?: {
        value: boolean;
    };
}
declare interface ImageRatioDefinitionPicker {
    isCustom: boolean;
    definition: MediaPickerImageRatio;
}
export declare class ImageTransformCropper extends VueComponentBase<ImageTransformCropperProps> implements IWebComponentInstance {
    imageTransformationData?: Array<MediaPickerTransformation>;
    editorInstance: IImageEditor;
    selectableRatios?: Array<MediaPickerImageRatioDefinition>;
    changedImageCropAreaCallback?: (cropData: MediaPickerCropTransformation) => void;
    shareableRenditions: Array<MediaPickerCropTransformation>;
    selectedRenditionId: {
        value: number;
    };
    isShowWarningDialog: {
        value: boolean;
    };
    omniaTheming: OmniaTheming;
    loc: ImageTransformerLocalization.locInterface;
    multilingualStore: MultilingualStore;
    mediaPickerStore: MediaPickerStore;
    private index;
    private availableImageRatioDefinitions;
    private internalCropTransformationData;
    private selectedCropRatio;
    private customRenditions;
    shareableRenditionsChanged(): void;
    mounted(): void;
    created(): void;
    beforeDestroy(): void;
    init(): void;
    onCropAreaChanged(props: ImageCropzoneRect): void;
    updateImageCropAreaChange(): void;
    onInitCropperEvent(): void;
    onSelectCropRatio(ratioPicker: ImageRatioDefinitionPicker): void;
    generatedCropZone(imageCropzoneRect: ImageCropzoneRect, cropzoneRect?: number): void;
    saveCropState(rendition: MediaPickerCropTransformation): void;
    getCropState(ratioId: number): MediaPickerCropTransformation;
    getIndex(): number;
    render(): VueTsxSupport.JSX.Element;
}
export {};
