import { fabric } from "fabric";
declare type VerticalLineCoords = {
    x: number;
    y1: number;
    y2: number;
};
declare type HorizontalLineCoords = {
    y: number;
    x1: number;
    x2: number;
};
declare type IgnoreObjTypes = {
    key: string;
    value: any;
}[];
export declare class AlignGuidelines {
    aligningLineMargin: number;
    aligningLineWidth: number;
    aligningLineColor: string;
    ignoreObjTypes: IgnoreObjTypes;
    pickObjTypes: IgnoreObjTypes;
    canvas: fabric.Canvas;
    ctx: CanvasRenderingContext2D;
    viewportTransform: any;
    verticalLines: VerticalLineCoords[];
    horizontalLines: HorizontalLineCoords[];
    activeObj: fabric.Object;
    constructor({ canvas, aligningOptions, ignoreObjTypes, pickObjTypes, }: {
        canvas: fabric.Canvas;
        ignoreObjTypes?: IgnoreObjTypes;
        pickObjTypes?: IgnoreObjTypes;
        aligningOptions?: {
            lineMargin?: number;
            lineWidth?: number;
            lineColor?: string;
        };
    });
    private drawSign;
    private drawLine;
    private drawVerticalLine;
    private drawHorizontalLine;
    private isInRange;
    private watchMouseDown;
    private watchMouseUp;
    private watchMouseWheel;
    private clearLinesMeta;
    private watchObjectMoving;
    private getObjDraggingObjCoords;
    private omitCoords;
    private getObjMaxWidthHeightByCoords;
    /**
     * fabric.Object.getCenterPoint will return the center point of the object calc by mouse moving & dragging distance.
     * calcCenterPointByACoords will return real center point of the object position.
     */
    private calcCenterPointByACoords;
    private traversAllObjects;
    private snap;
    clearGuideline(): void;
    watchRender(): void;
    init(): void;
}
export {};
