import { ToolbarItemType } from "../../ImageViewer/Models/IImageViewer";
import { PaintToolsPluginOptions } from "./PaintToolsPluginOptions";
import { ImageViewerPluginBase, PluginType } from "../../ImageViewer/Core/ImageViewerPluginBase";
import { PropertiesPanel } from "./Objects/Properties/PropertiesPanel";
import { IPaintDesignerContext, IPaintObjectDesigner } from "../../ImageViewer/Layers";
export declare function mirrorImage(ctx: CanvasRenderingContext2D, image: HTMLImageElement, x?: number, y?: number, horizontal?: boolean, vertical?: boolean): void;
/**
* Paint tools toolbar button key.
**/
/**
* PaintToolsPlugin class.
* Adds the "Paint tools", "Effects" and "Text and Objects" buttons.
* @example
* ```javascript
*
*
*
* ```
* @param {any} options
**/
export declare class PaintToolsPlugin extends ImageViewerPluginBase {
/**
* Unique plugin identifier.
**/
readonly id: PluginType;
/**
* Plugin options
**/
options: PaintToolsPluginOptions;
private _propertiesPanelHandle;
propertiesPanel: PropertiesPanel;
paintDesignerContext: IPaintDesignerContext;
/**
* PaintToolsPlugin constructor.
* @param options plugin options
*/
constructor(options?: PaintToolsPluginOptions);
/**
* Returns the layout for the effects tools toolbar.
*
* If the value is `true`, `undefined`, or `null`, a default layout is returned.
* If the value is `false`, an empty layout is returned.
* Otherwise, the provided custom layout is used.
*
* @returns {ToolbarItemType[]} An array of toolbar item types.
*/
get effectsToolbarLayout(): ToolbarItemType[];
/**
* Returns the layout for the paint tools toolbar.
*
* If the value is `true`, `undefined`, or `null`, a default layout is returned.
* If the value is `false`, an empty layout is returned.
* Otherwise, the provided custom layout is used.
*
* @returns {ToolbarItemType[]} An array of toolbar item types.
*/
get paintToolbarLayout(): ToolbarItemType[];
/**
* Returns the layout for the text tools toolbar.
*
* If the value is `true`, `undefined`, or `null`, a default layout is returned.
* If the value is `false`, an empty layout is returned.
* Otherwise, the provided custom layout is used.
*
* @deprecated This option is deprecated in favor of the "Text and Objects" toolbar,
* where text tools are available directly.
* @see objectsToolbarLayout
*
* @returns {ToolbarItemType[]} An array of toolbar item types.
*/
get textToolbarLayout(): ToolbarItemType[];
/**
* Returns the layout for the objects toolbar.
*
* If the value is `true`, `undefined`, or `null`, a default layout is returned.
* If the value is `false`, an empty layout is returned.
* Otherwise, the provided custom layout is used.
*
* @returns {ToolbarItemType[]} An array of toolbar item types.
*/
get objectsToolbarLayout(): ToolbarItemType[];
setPaintDesignerContext(paintDesignerContext: IPaintDesignerContext): void;
initialize(viewer: any): void;
dispose(): void;
private _selectedObjectDesigner;
closeObjectProperties(): void;
openObjectProperties(): void;
hideObjectProperties(objectDesigner: IPaintObjectDesigner): Promise;
showObjectProperties(objectDesigner: IPaintObjectDesigner): Promise;
private _onBeforeOpen;
private _ensureOptions;
}