import { DisposableGroup, Slot } from '@blockeditor/global/utils'; import type { CssVariableName } from '../../../_common/theme/css-variables.js'; import type { ShapeStyle } from '../../../surface-block/element-model/shape.js'; import { type Options, Overlay, type RoughCanvas, type XYWH } from '../../../surface-block/index.js'; import type { EdgelessPageBlockComponent } from '../edgeless-page-block.js'; export declare abstract class Shape { xywh: XYWH; type: string; options: Options; shapeStyle: ShapeStyle; constructor(xywh: XYWH, type: string, options: Options, shapeStyle: ShapeStyle); abstract draw(ctx: CanvasRenderingContext2D, rc: RoughCanvas): void; } export declare class RectShape extends Shape { draw(ctx: CanvasRenderingContext2D, rc: RoughCanvas): void; } export declare class TriangleShape extends Shape { draw(ctx: CanvasRenderingContext2D, rc: RoughCanvas): void; } export declare class DiamondShape extends Shape { draw(ctx: CanvasRenderingContext2D, rc: RoughCanvas): void; } export declare class EllipseShape extends Shape { draw(ctx: CanvasRenderingContext2D, rc: RoughCanvas): void; } export declare class RoundedRectShape extends Shape { draw(ctx: CanvasRenderingContext2D, rc: RoughCanvas): void; } export declare class ShapeFactory { static createShape(xywh: XYWH, type: string, options: Options, shapeStyle: ShapeStyle): Shape; } declare class ToolOverlay extends Overlay { x: number; y: number; globalAlpha: number; protected edgeless: EdgelessPageBlockComponent; protected disposables: DisposableGroup; get computedStyle(): CSSStyleDeclaration; isTransparent(color: string): boolean; constructor(edgeless: EdgelessPageBlockComponent); dispose(): void; render(_ctx: CanvasRenderingContext2D, _rc: RoughCanvas): void; } export declare class ShapeOverlay extends ToolOverlay { shape: Shape; private _getRealStrokeColor; private _getRealFillColor; constructor(edgeless: EdgelessPageBlockComponent, type: string, options: Options, style: { shapeStyle: ShapeStyle; fillColor: string; strokeColor: string; }); render(ctx: CanvasRenderingContext2D, rc: RoughCanvas): void; } export declare class NoteOverlay extends ToolOverlay { text: string; backgroundColor: string; private _getOverlayText; private _getRealBackgroundColor; constructor(edgeless: EdgelessPageBlockComponent, background: CssVariableName); render(ctx: CanvasRenderingContext2D): void; } export declare class DraggingNoteOverlay extends NoteOverlay { slots: { draggingNoteUpdated: Slot<{ xywh: XYWH; }>; }; width: number; height: number; constructor(edgeless: EdgelessPageBlockComponent, background: CssVariableName); render(ctx: CanvasRenderingContext2D): void; } export {}; //# sourceMappingURL=tool-overlay.d.ts.map