import { MarkLine, MathsKit, MathsKitOptions } from '../mathsKit'; import { MathsKitManager } from '../manager'; import { Point2d } from '../utils/Point2d'; import Matrix2D from '../utils/matrix'; export type RulerElement = HTMLDivElement; export declare class RulerTool extends MathsKit { protected markLines: MarkLine[]; private deleteBtn; private rotateBtn; private angleInput; private lineLength; private stretchBtn; constructor(options: MathsKitOptions, manager: MathsKitManager); init(): void; onDragStart(): void; onDragDoing(): void; onDragEnd(matrix: Matrix2D): void; onRotateStart(originAngle: number): void; onRotateDoing(angle: number): void; onRotateEnd(matrix: Matrix2D): void; onStretchStart(): void; private thottled; onStretchDoing(): void; onStretchEnd(width: number): void; /** * 获取旋转中心点, 坐标必须相对于容器左上角, 旋转中心点是左上角 * @returns */ getRotateCenterPoint: () => Point2d; getMarkLines(): MarkLine[]; private bindEvent; private unbindEvent; destroy(): void; private onDeleteBtnClickHandler; private onBtnMouseEnterHandler; private onBtnMouseLeaveHandler; createElement(): HTMLDivElement; createMark(element: RulerElement, position: 'top' | 'bottom'): void; setActive(isActive: boolean): void; render(): void; private renderMark; private renderMarkAtPosition; private createDeleteBtn; private createRotateBtn; private createStretchBtn; private createAngleInput; private onAngleInputFocusHandler; private onAngleInputBlurHandler; private onAngleInputKeyDownHandler; private updateAngleDisplay; private getCurrentAngle; private applyAngleFromInput; private showAngleInput; private hideAngleInput; showLineLength(number: number): void; hideLineLength(): void; private createLineLength; }