import { Canvas as ICanvas, Object as IObject, ILineOptions, IImageOptions, IRectOptions, ICircleOptions, ITextOptions, IEllipseOptions, IEvent, ICanvasOptions, ITriangleOptions } from 'fabric/fabric-impl';
import EventEmitter from './../emitter';
import { DrawingTool, ToolSettings } from './../type';
interface FabricEvents {
    'object:added': IEvent;
    'object:modified': IEvent;
    'object:removed': IEvent;
    'mouse:down': IEvent;
    'mouse:move': IEvent;
    'mouse:up': IEvent;
    'after:render': IEvent;
    'push-canvas-to-stack': IEvent;
    [key: string | symbol]: IEvent | any | undefined;
}
declare class FabricCanvas extends EventEmitter<FabricEvents> {
    private canvas;
    private currentShape;
    private drawingTool;
    private isDrawing;
    private startX;
    private startY;
    private endX;
    private endY;
    private options;
    private images;
    private curImageIndex;
    private isValidEraser;
    private isValidSelection;
    constructor(canvasId: string);
    getCanvas(): ICanvas;
    renderCanvas(data: any): void;
    setBackgroundColor(color: string): void;
    setBackgroundImage(imageUrl: string, options?: IImageOptions): void;
    addObject(object: IObject): void;
    removeObject(object: IObject): void;
    removeAllObject(): void;
    getObjects(): IObject[];
    getActiveObject(): IObject | undefined | null;
    setActiveObject(object: IObject): void;
    resetActiveObject(): void;
    setWidth(value: number | string): void;
    setHeight(value: number | string): void;
    exitTextEditing(): void;
    setObjectsSelectable(objectsSelectable: boolean): void;
    setEvented(): void;
    clearCanvas(): void;
    reloadCanvas(): void;
    setDrawingTool(tool: DrawingTool): void;
    setOptions(toolSetting: ToolSettings): void;
    setTextOptions(): ITextOptions;
    setPencilBrushOptions(): void;
    discardActiveObject(): void;
    drawRect(options: IRectOptions): void;
    drawTriangle(options: ITriangleOptions): void;
    drawCircle(options: ICircleOptions): void;
    drawEllipse(options: IEllipseOptions): void;
    drawLine(x1: number, y1: number, x2: number, y2: number, options?: ILineOptions): void;
    drawArrow(x1: number, y1: number, x2: number, y2: number, options?: ILineOptions): void;
    drawFreeDraw(): void;
    drawText(text: string, options?: ITextOptions): void;
    insertImage(url: string, options?: IImageOptions): void;
    insertPPT(urls: string[]): void;
    setCurrentScense(index: number): void;
    setEraser(): void;
    private initEvent;
    private onMouseDown;
    private onMouseMove;
    private onMouseUp;
    private onObjectMoving;
    private onObjectScaling;
    private onObjectRotating;
    private isNeedPushToStack;
    toDataURL(options?: ICanvasOptions): any;
    toJSON(): any;
    loadFromJSON(json: any, callback: any, reviver?: any): ICanvas;
    renderAll(): ICanvas;
    requestRenderAll(): any;
    zoom(ratio?: number): void;
    getZoom(): number;
    zoomIn(): void;
    zoomOut(): void;
    destroy(): void;
}
export default FabricCanvas;
