import type { BrushSerializedNode } from '../../types/serialized-node'; import { AABB } from '../math'; export interface BrushPoint { x: number; y: number; radius: number; } export declare enum BrushType { VANILLA = "vanilla", STAMP = "stamp" } export declare enum StampMode { EQUI_DISTANCE = "equi_distance", RATIO_DISTANCE = "ratio_distance" } export declare class Brush { static getGeometryBounds(brush: Partial | Partial): AABB; static getRenderBounds(brush: Brush): AABB; type: BrushType; /** * The points attribute defines a list of points. Each point is defined by a pair of number representing a X and a Y coordinate in the user coordinate system. If the attribute contains an odd number of coordinates, the last one will be ignored. * * @see https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/points */ points: BrushPoint[]; /** * The interval between stamps. */ stampInterval: number; /** * The mode of stamp placement. Default to EQUI_DISTANCE. */ stampMode: StampMode; /** * The noise factor of stamp. Default to 0.4. */ stampNoiseFactor: number; /** * The rotation factor of stamp. Default to 0.75. */ stampRotationFactor: number; constructor(props?: Partial); }