/// <reference path="../../vendor/react/react.d.ts" />
//@ts-ignore
import { Component } from 'react';
import { PageToolsPlugin } from './PageToolsPlugin';
/// <reference path="../../vendor/i18next.d.ts" />
//@ts-ignore
import { i18n } from 'i18next';
import { Bounds, IGcSelectionBox, SelectionBoundsChangedParams } from '../../ImageViewer/Models/SelectionBoxTypes';
export declare type CropDialogState = {
    hidden?: boolean;
    x?: number | any;
    y?: number | any;
    width?: number | any;
    height?: number | any;
    aspectRatio?: AspectRatioType;
};
export declare type CropDialogProps = {
    pageToolsPlugin: PageToolsPlugin;
    in17n: i18n;
    hidden?: boolean;
};
export declare type AspectRatioType = "Custom" | "Original" | "1_1" | "5_4" | "4_3" | "3_2" | "16_9";
export declare class CropDialog extends Component<CropDialogProps, CropDialogState> {
    static instances: {
        [id: string]: CropDialog | null;
    };
    private _isMounted;
    constructor(props: any, context: any);
    get isMounted(): boolean;
    get selectionBox(): IGcSelectionBox;
    get viewer(): import("../../ImageViewer/Models").IImageViewer;
    get maxImageSize(): {
        width: number;
        height: number;
    };
    get maxWidth(): number;
    get maxHeight(): number;
    getX(): number;
    setX(x: number, checkBounds?: boolean): void;
    getY(): number;
    setY(y: number, checkBounds?: boolean): void;
    getWidth(): number;
    set width(width: number | string);
    getHeight(): number;
    set height(height: number);
    adjustAspectRatio(changedSide?: "height" | "width"): boolean;
    get naturalRatio(): number;
    static showDialog(pageToolsPlugin: PageToolsPlugin): void;
    show(): void;
    resetValues(): void;
    disableModal(): void;
    hide(): void;
    onSelectionBoundsChanged(selection: Bounds, params: SelectionBoundsChangedParams): void;
    onKeyDown(event: KeyboardEvent): void;
    showSelectionBox(): void;
    updateSelectionBox(): void;
    hideSelectionBox(): void;
    componentWillUnmount(): void;
    componentDidMount(): void;
    render(): JSX.Element | null;
}
