import { Pen } from '../pen'; import { Point } from "../point"; export interface GridDrawerContext { store: any; canvas: HTMLCanvasElement; /** 实际要绘制的矩形区域(已考虑 scope 和 clip) */ area: { x: number; y: number; width: number; height: number; }; /** 网格对齐原点 */ align: { x: number; y: number; }; size: number; color: string; rotate?: number; scale: number; mousePos?: Point; } export type GridDrawer = (ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, context: GridDrawerContext, mousePos: Point) => boolean | undefined; export declare const globalStore: { version: string; path2dDraws: { [key: string]: (pen: Pen, ctx?: CanvasRenderingContext2D) => Path2D; }; canvasDraws: { [key: string]: (ctx: CanvasRenderingContext2D, pen: Pen) => void; }; lineAnimateDraws: { [key: string]: (ctx: CanvasRenderingContext2D, pen: Pen, state: any, index: number) => void; }; anchors: { [key: string]: (pen: Pen) => void; }; htmlElements: { [key: string]: HTMLImageElement; }; gridDrawers: { [key: string]: GridDrawer; }; }; export declare function register(path2dFns: { [key: string]: (pen: Pen, ctx?: CanvasRenderingContext2D) => Path2D; }): void; export declare function registerCanvasDraw(drawFns: { [key: string]: (ctx: CanvasRenderingContext2D, pen: Pen) => void; }): void; export declare function registerAnchors(anchorsFns: { [key: string]: (pen: Pen) => void; }): void; export declare function registerLineAnimateDraws(lineAnimateDraws: { [key: string]: (ctx: CanvasRenderingContext2D, line: Pen, pos: any, index: number) => void; }): void; export declare function registerGridDrawer(name: string, drawer: GridDrawer): void; export declare function unregisterGridDrawer(name: string): void;