import type { CanvasRenderingContext2D } from "canvas"; import z from "zod/v4"; import { type Bounds, type DrawLayout, PainterModule } from "../painter"; import { type Theme } from "../theme"; export declare class ShapeModule extends PainterModule { static readonly SCHEMA: z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; id: z.ZodOptional; anchor: z.ZodOptional; location: z.ZodDefault>; }, z.core.$strip>>; type: z.ZodLiteral<"shape">; fill: z.ZodOptional; stroke: z.ZodOptional>; opacity: z.ZodOptional; shape: z.ZodDiscriminatedUnion<[z.ZodObject<{ kind: z.ZodLiteral<"rectangle">; width: z.ZodUnion]>; height: z.ZodUnion]>; radius: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"circle">; radius: z.ZodNumber; }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"ellipse">; radiusX: z.ZodNumber; radiusY: z.ZodNumber; }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"line">; to: z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; }, z.core.$strip>; }, z.core.$strip>, z.ZodObject<{ kind: z.ZodLiteral<"polygon">; points: z.ZodArray>; }, z.core.$strip>], "kind">; }, z.core.$strip>; private resolveExtent; private getShapeBounds; private tracePath; draw(ctx: CanvasRenderingContext2D, _theme: Theme, element: z.infer, _painterCtx?: unknown, layout?: DrawLayout): Promise; /** * An extent of `canvas` is measured as 0, the canvas is not resolved yet while measuring. */ getBounds(_ctx: CanvasRenderingContext2D, _theme: Theme, element: z.infer): Promise; getMinimumBounds(ctx: CanvasRenderingContext2D, theme: Theme, element: z.infer): Promise; }