import { Node } from '../Node'; import type { NodeOptions } from '../types'; export declare class Rect extends Node { width: number; height: number; cornerRadius: number; constructor(options?: NodeOptions & { width?: number; height?: number; cornerRadius?: number; }); containsPoint(localX: number, localY: number): boolean; getBounds(): { x: number; y: number; width: number; height: number; }; draw(ctx: unknown): void; protected getShapeProps(): { width: number; height: number; cornerRadius: number; }; } export declare class Circle extends Node { radius: number; constructor(options?: NodeOptions & { radius?: number; }); containsPoint(localX: number, localY: number): boolean; getBounds(): { x: number; y: number; width: number; height: number; }; draw(ctx: unknown): void; protected getShapeProps(): { radius: number; }; } export declare class Ellipse extends Node { radiusX: number; radiusY: number; constructor(options?: NodeOptions & { radiusX?: number; radiusY?: number; }); containsPoint(localX: number, localY: number): boolean; getBounds(): { x: number; y: number; width: number; height: number; }; draw(ctx: unknown): void; protected getShapeProps(): { radiusX: number; radiusY: number; }; } export declare class Line extends Node { x2: number; y2: number; constructor(options?: NodeOptions & { x2?: number; y2?: number; }); containsPoint(localX: number, localY: number): boolean; getBounds(): { x: number; y: number; width: number; height: number; }; draw(ctx: unknown): void; protected getShapeProps(): { x2: number; y2: number; }; } export declare class Arc extends Node { radius: number; innerRadius: number; startAngle: number; endAngle: number; counterClockwise: boolean; constructor(options?: NodeOptions & { radius?: number; innerRadius?: number; startAngle?: number; endAngle?: number; counterClockwise?: boolean; }); containsPoint(localX: number, localY: number): boolean; getBounds(): { x: number; y: number; width: number; height: number; }; draw(ctx: unknown): void; protected getShapeProps(): { radius: number; innerRadius: number; startAngle: number; endAngle: number; counterClockwise: boolean; }; } export declare class Polygon extends Node { points: number[]; constructor(options?: NodeOptions & { points?: number[]; }); containsPoint(localX: number, localY: number): boolean; getBounds(): { x: number; y: number; width: number; height: number; }; draw(ctx: unknown): void; protected getShapeProps(): { points: number[]; }; } export declare class Polyline extends Polygon { constructor(options?: NodeOptions & { points?: number[]; }); containsPoint(localX: number, localY: number): boolean; draw(ctx: unknown): void; } export declare class Path extends Node { d: string; constructor(options?: NodeOptions & { d?: string; }); containsPoint(localX: number, localY: number): boolean; getBounds(): import("../utils/pathHitTest").PathBounds; draw(ctx: unknown): void; protected getShapeProps(): { d: string; }; } export declare class Star extends Node { numPoints: number; innerRadius: number; outerRadius: number; constructor(options?: NodeOptions & { numPoints?: number; innerRadius?: number; outerRadius?: number; }); containsPoint(localX: number, localY: number): boolean; getBounds(): { x: number; y: number; width: number; height: number; }; draw(ctx: unknown): void; protected getShapeProps(): { numPoints: number; innerRadius: number; outerRadius: number; }; } export declare class TextNode extends Node { text: string; fontSize: number; fontFamily: string; fontWeight: string; textAlign: CanvasTextAlign; constructor(options?: NodeOptions & { text?: string; fontSize?: number; fontFamily?: string; fontWeight?: string; textAlign?: CanvasTextAlign; }); containsPoint(localX: number, localY: number): boolean; getBounds(): { x: number; y: number; width: number; height: number; }; draw(ctx: unknown): void; protected getShapeProps(): { text: string; fontSize: number; fontFamily: string; fontWeight: string; textAlign: CanvasTextAlign; }; } export declare class ImageNode extends Node { src: string; width: number; height: number; private _image; loaded: boolean; constructor(options?: NodeOptions & { src?: string; width?: number; height?: number; }); load(): Promise; get image(): HTMLImageElement | null; containsPoint(localX: number, localY: number): boolean; getBounds(): { x: number; y: number; width: number; height: number; }; draw(ctx: unknown): void; protected getShapeProps(): { src: string; width: number; height: number; }; } export declare class Sprite extends ImageNode { frameWidth: number; frameHeight: number; frames: number; currentFrame: number; fps: number; playing: boolean; private _lastTime; private _loop; private _animControl; private _frameProxy; constructor(options?: NodeOptions & { src?: string; frameWidth?: number; frameHeight?: number; frames?: number; fps?: number; }); play(options?: { fps?: number; loop?: boolean; }): this; stop(): this; updateFrame(time: number): void; draw(ctx: unknown): void; protected getShapeProps(): { frameWidth: number; frameHeight: number; frames: number; fps: number; src: string; width: number; height: number; }; } /** Alias for rounded rectangle */ export declare class RoundedRect extends Rect { constructor(options?: NodeOptions & { width?: number; height?: number; cornerRadius?: number; }); }