import type { Body, Meta } from '@uppy/core';
import type { I18n, LocalUppyFile } from '@uppy/utils';
import { Component } from 'preact';
import type ImageEditor from './ImageEditor.js';
import type { AspectRatio } from './ImageEditor.js';
type Props<M extends Meta, B extends Body> = {
    currentImage: LocalUppyFile<M, B>;
    objectUrl: string;
    initCropper: (imgElement: HTMLImageElement) => void;
    opts: ImageEditor<M, B>['opts'];
    i18n: I18n;
    save: () => void;
    angleGranular: number;
    rotateBy: (degrees: number) => void;
    rotateGranular: (degrees: number) => void;
    flipHorizontal: () => void;
    zoom: (ratio: number) => void;
    setAspectRatio: (ratio: AspectRatio) => void;
    reset: () => void;
};
export default class Editor<M extends Meta, B extends Body> extends Component<Props<M, B>> {
    imgElement: HTMLImageElement;
    componentDidMount(): void;
    onRotate90Deg: () => void;
    onRotateGranular: (ev: Event) => void;
    renderGranularRotate(): import("preact").JSX.Element;
    renderRevert(): import("preact").JSX.Element;
    renderRotate(): import("preact").JSX.Element;
    renderFlip(): import("preact").JSX.Element;
    renderZoomIn(): import("preact").JSX.Element;
    renderZoomOut(): import("preact").JSX.Element;
    renderCropSquare(): import("preact").JSX.Element;
    renderCropWidescreen(): import("preact").JSX.Element;
    renderCropWidescreenVertical(): import("preact").JSX.Element;
    render(): import("preact").JSX.Element;
}
export {};
//# sourceMappingURL=Editor.d.ts.map