import { type BasicTransformEvent, type Canvas, type FabricObject, type Point } from 'fabric';
import type { AligningLineConfig, OriginMap } from './typedefs';
type TransformEvent = BasicTransformEvent & {
    target: FabricObject;
};
export declare class AligningGuidelines {
    canvas: Canvas;
    horizontalLines: Set<string>;
    verticalLines: Set<string>;
    cacheMap: Map<string, Point[]>;
    /**
     * When we drag to resize using center points like mt, ml, mb, and mr,
     * we do not need to draw line segments; we only need to draw the target points.
     */
    onlyDrawPoint: boolean;
    /** Alignment method is required when customizing. */
    contraryOriginMap: OriginMap;
    xSize: number;
    lineDash: number[] | undefined;
    /** At what distance from the shape does alignment begin? */
    margin: number;
    /** Aligning line dimensions */
    width: number;
    /** Aligning line color */
    color: string;
    /** Close Vertical line, default false. */
    closeVLine: boolean;
    /** Close horizontal line, default false. */
    closeHLine: boolean;
    constructor(canvas: Canvas, options?: Partial<AligningLineConfig>);
    initBehavior(): void;
    /** Returns shapes that can draw aligning lines, default returns all shapes on the canvas excluding groups. */
    getObjectsByTarget(target: FabricObject): Set<FabricObject<Partial<import("fabric").FabricObjectProps>, import("fabric").SerializedObjectProps, import("fabric").ObjectEvents>>;
    /** When the user customizes the controller, this property is set to enable or disable automatic alignment through point scaling/resizing. */
    getPointMap(target: FabricObject): import("./typedefs").PointMap;
    /** When the user customizes the controller, this property is used to enable or disable alignment positioning through points. */
    getContraryMap(target: FabricObject): import("./typedefs").PointMap;
    /** Users can customize. */
    getCaCheMapValue(object: FabricObject): Point[];
    drawLine(origin: Point, target: Point): void;
    drawX(point: Point, dir: number): void;
    mouseUp(): void;
    scalingOrResizing(e: TransformEvent): void;
    moving(e: TransformEvent): void;
    beforeRender(): void;
    afterRender(): void;
    dispose(): void;
}
export {};
//# sourceMappingURL=index.d.ts.map