/// <reference path="../../vendor/i18next.d.ts" />
//@ts-ignore
import { i18n } from "i18next";
import { ImageFormatCode } from "../../ImageViewer/Models";
import { IImageViewer } from "../../ImageViewer/Models/IImageViewer";
import { Size } from "../../ImageViewer/Models/SelectionBoxTypes";
export declare function mirrorImage(ctx: CanvasRenderingContext2D, image: HTMLImageElement, x?: number, y?: number, horizontal?: boolean, vertical?: boolean): void;
export declare type PageToolButtonKey = "rotate-image" | "flip-horizontal" | "flip-vertical" | "crop-image" | "resize-image" | "$split" | "edit-undo" | "edit-redo";
export declare type PageToolsPluginOptions = {
    buttonPosition?: number | false;
    toolbarLayout?: PageToolButtonKey[];
};
export declare class PageToolsPlugin {
    readonly id: string;
    options: PageToolsPluginOptions;
    private _initialized;
    private _totalRotation;
    private _viewer;
    constructor(options?: PageToolsPluginOptions);
    get isReady(): boolean;
    get instanceId(): string;
    get maxImageSize(): Size;
    get naturalSize(): {
        width: number;
        height: number;
    };
    get toolbarLayout(): PageToolButtonKey[];
    get viewer(): IImageViewer;
    initialize(viewer: any): void;
    dispose(): void;
    get in17n(): i18n;
    get totalRotation(): number;
    rotate(rotation: number): Promise<boolean>;
    isImageFormatSupported(imageFormat: ImageFormatCode | string, allowUnknown?: boolean): boolean;
    crop(x: number, y: number, width: number, height: number): Promise<boolean>;
    resize(width: number, height: number, keepAspectRatio?: boolean): Promise<boolean>;
    flip(horizontal?: boolean, vertical?: boolean): Promise<boolean>;
    flipHorizontal(): Promise<boolean>;
    flipVertical(): Promise<boolean>;
    private _onBeforeOpen;
    private _rotateImageData;
    private _imageSizeAfterRotation;
    private _ensureOptions;
}
