/// <reference path="../../vendor/react/react.d.ts" />
//@ts-ignore
import { Component } from 'react';
import { PageToolsPlugin } from './PageToolsPlugin';
import { Bounds, IGcSelectionBox, SelectionBoundsChangedParams } from '../../ImageViewer/Models/SelectionBoxTypes';
/// <reference path="../../vendor/i18next.d.ts" />
//@ts-ignore
import { i18n } from 'i18next';
import { IViewerTransactionSupport } from '../../ImageViewer/Models/IViewerTransactionSupport';
export declare type ResizeToolbarState = {
    hidden?: boolean;
    width?: number | any;
    height?: number | any;
    keepAspectRatio?: boolean | any;
};
export declare type ResizeToolbarProps = {
    pageToolsPlugin: PageToolsPlugin;
    hidden?: boolean;
};
export declare class ResizeToolbar extends Component<ResizeToolbarProps, ResizeToolbarState> implements IViewerTransactionSupport {
    static instances: {
        [id: string]: ResizeToolbar | null;
    };
    private _isMounted;
    private _onKeyDownEventBusHandler?;
    private _onKeyUpEventBusHandler?;
    private _onZoomChangedEventBusHandler?;
    constructor(props: ResizeToolbarProps, context: ResizeToolbarState);
    show(): void;
    private _bindEvents;
    private _unbindEvents;
    _holdForAspectRatioActivated: boolean;
    activateHoldForAspectRatio(): void;
    deactivateHoldForAspectRatio(): void;
    hide(): void;
    confirmChanges(): void;
    cancelChanges(): void;
    undoTransactionStep(): boolean | void;
    redoTransactionStep(): boolean | void;
    onSelectionBoundsChanged(selection: Bounds, params: SelectionBoundsChangedParams): void;
    showSelectionBox(): void;
    updateSelectionBox(): void;
    hideSelectionBox(): void;
    componentWillUnmount(): void;
    componentDidMount(): void;
    get in17n(): i18n;
    get isMounted(): boolean;
    get selectionBox(): IGcSelectionBox;
    get viewer(): import("../../ImageViewer/Models").IImageViewer;
    get maxImageSize(): {
        width: number;
        height: number;
    };
    get naturalWidth(): number;
    get naturalHeight(): number;
    getWidth(): number;
    setWidth(width1: number | string): void;
    getHeight(): number;
    setHeight(height1: number | string): void;
    get keepAspectRatio(): boolean;
    set keepAspectRatio(keepAspectRatio: boolean);
    get naturalRatio(): number;
    private _changedRatio;
    get changedRatio(): number;
    rememberRatio(): void;
    render(): JSX.Element | null;
    isSizeCorrect(): boolean;
    apply(): void;
}
