import { IRenderLine } from '../RenderLayerHandler';
import type { RuleLayerController } from './RulerLayer';
import { IBoundary } from './utils';
interface IAlignLineItem {
    id: string;
    line: IRenderLine;
    isHorizontal: boolean;
    canvasBoundary: IBoundary;
    rulePosition: {
        x: number;
        y: number;
    };
}
export declare class AlignLineStore {
    private controller;
    private lines;
    constructor(controller: RuleLayerController);
    dispose(): void;
    /**
     * 在某个点上是否命中了line
     * @param x 画布x坐标
     * @param y 画布y坐标
     * @returns 命中的线段，返回null表示没有命中任何线
     * */
    testPointer(x: number, y: number): IAlignLineItem | null;
    /**
     * 创建一根水平辅助线
     * @param id 辅助线id
     * @param line 辅助线外形配置
     * */
    createHorizontalLine(id: string, line: IRenderLine): void;
    /**
     * 创建一根垂直辅助线
     * @param id 辅助线id
     * @param line 辅助线外形配置
     * */
    createVerticalLine(id: string, line: IRenderLine): void;
    /**
     * 返回所有辅助线的渲染数据
     * @returns 所有辅助线渲染数据
     * */
    getRenderObjects(): IRenderLine[];
    /**
     * 清楚所有辅助线数据
     * */
    clearAlignLines(): void;
    /**
     * 删除对齐线
     * @param id 需要删除的id
     * @returns
     */
    removeAlignLine(id: string): void;
    /**
     * 是否有对齐线
     * @returns 判断结果
     */
    hasAlignLines(): boolean;
    /**
     * 设置辅助线的位置
     * @param id 辅助线id
     * @param x 辅助线x坐标，用于更新竖线位置
     * @param y 辅助线y坐标，用于更新横位置
     * */
    setLinePosition(id: string, x: number, y: number): void;
    /**
     * 根据cavnasPosition重新计算所有辅助线的屏幕坐标
     */
    updateAllPosition(): void;
    /**
     * 返回单个对齐线
     * @param id 对齐线id
     * */
    getAlignLine(id: string): IAlignLineItem;
    /**
     * 更新单个辅助线的标尺坐标数据
     * 同步时间响应尺寸和画布坐标
     * @param alignLine 对齐线对象
     * @param x 画布坐标x
     * @param y 画布坐标y
     * */
    private updateAlignLineCanvasPosition;
}
export {};
