/// <reference path="../../../vendor/react/react.d.ts" />
//@ts-ignore
import { Component } from 'react';
//@ts-ignore
import { ChangedEventArgs, EventFan, ZoomSettings } from '@grapecity/viewer-core';
import { GcImageViewer } from '../../GcImageViewer';
export declare const _MAX_ZOOM = 10, _MIN_ZOOM = 0.1, _ZOOM_FACTOR_ITEMS: number[];
export declare type ZoomControlProps = {
    onChange?: (zoom: ZoomSettings) => void;
    getZoom(): ZoomSettings;
    getActualZoomFactor(): number;
    isZoomDisabled(): boolean;
    isFullscreen(): boolean;
    onViewerStateChange: EventFan<ChangedEventArgs>;
    viewer: GcImageViewer;
};
export declare type ZoomControlModel = {
    openDropdown: boolean;
    disabled?: boolean;
    zoomInputValue?: string;
    version?: number;
};
export declare function zoomViewIn(viewer: GcImageViewer): void;
export declare function zoomViewOut(viewer: GcImageViewer): void;
export declare class ZoomControl extends Component<ZoomControlProps, ZoomControlModel> {
    _mounted: boolean;
    private _unregisterViewerStateChange?;
    private _zoomInput;
    private _dropdown;
    private _minZoom;
    private _maxZoom;
    constructor(props: ZoomControlProps, context?: any);
    componentDidMount(): void;
    componentWillUnmount(): void;
    private onDecButtonClick;
    private onIncButtonClick;
    private incZoomInternal;
    private decZoomInternal;
    private onZoomSelect;
    get zoomValue(): number;
    clearDirty(): void;
    _inputFocused: boolean;
    getValueFromState(useDefaultFromControl?: boolean): string;
    onInputKeyDown(e: KeyboardEvent): boolean;
    getUserFriendlyValue(zoom?: ZoomSettings): string;
    render(): JSX.Element;
    setZoomInputValue(zoomInputValue?: string): void;
    get minZoom(): number;
    get maxZoom(): number;
    applyZoomInputValue(): void;
}
