import type { WebGLRenderer } from "three"; import type { UILayer } from "../../layers/UILayer/UILayer"; import { UIColor } from "../../miscellaneous/color/UIColor"; import type { UIColorConfig } from "../../miscellaneous/color/UIColor.Internal"; import { UIElement } from "../UIElement/UIElement"; import type { UIGraphicsOptions } from "./UIGraphics.Internal"; /** Canvas-based 2D drawing element */ export declare class UIGraphics extends UIElement { private readonly colorInternal; private readonly canvas; private readonly context; private readonly texture; /** * Creates a new UIGraphics instance. * * @param layer - Layer containing this element * @param options - Configuration options */ constructor(layer: UILayer, options?: Partial); /** Multiplicative tint. Alpha channel controls opacity. */ get color(): UIColor; /** Multiplicative tint. Alpha channel controls opacity. */ set color(value: UIColorConfig); /** * Clears canvas. Optionally fills with color. * * @param color - Fill color after clearing */ clear(color?: UIColorConfig): this; /** Draws filled rectangle */ drawRect(x: number, y: number, width: number, height: number, color: UIColorConfig): this; /** Draws filled circle */ drawCircle(x: number, y: number, radius: number, color: UIColorConfig): this; /** * Draws filled arc. * * @param startAngle - Start angle in radians * @param endAngle - End angle in radians */ drawArc(x: number, y: number, radius: number, startAngle: number, endAngle: number, color: UIColorConfig): this; /** * Draws connected line segments. * * @param points - Array of [x, y] pairs * @param lineWidth - Line width in pixels */ drawPolyline(points: [number, number][], color: UIColorConfig, lineWidth?: number): this; /** Removes element and frees resources */ destroy(): void; protected onWillRender(renderer: WebGLRenderer, deltaTime: number): void; }