import { VoxelBuildSpace } from "../../VoxelBuildSpace"; import { VoxelShapeTemplate } from "../../../Templates/Shapes/VoxelShapeTemplate"; import { Vector3Like } from "@amodx/math"; import { PaintVoxelData } from "../../../Voxels"; import { BuilderToolBase, ToolOptionsData } from "../BuilderToolBase"; import { FreePointSelection } from "../../Util/FreePointSelection"; export declare enum BrushPositionModes { Start = "Start", Center = "Center", End = "End" } export declare enum BrushToolModes { Fill = "Fill", Extrude = "Extrude", Remove = "Remove" } export declare enum BrushToolSelectionPositionModes { Surface = "Surface", Free = "Free" } type BrushVoxelData = { fill: PaintVoxelData; face: PaintVoxelData; edge: PaintVoxelData; point: PaintVoxelData; }; interface BrushToolEvents { "shape-updated": null; } export declare class BrushTool extends BuilderToolBase { static ToolId: string; static ModeArray: BrushToolModes[]; static PositionTypeModeArray: BrushToolSelectionPositionModes[]; static PositionModeArray: BrushPositionModes[]; static get ShapesArray(): string[]; static ShapeCreators: Record VoxelShapeTemplate>; static BaseToolOptions: ToolOptionsData; static ShapeOptions: Record ToolOptionsData>; shape: string; axisXPositionMode: BrushPositionModes; axisYPositionMode: BrushPositionModes; axisZPositionMode: BrushPositionModes; mode: BrushToolModes; positionMode: BrushToolSelectionPositionModes; private pointSelection; freeSelection: FreePointSelection; get distance(): number; set distance(distance: number); template: VoxelShapeTemplate; get selection(): import("../../../Templates/Shapes/Selections/VoxelShapeSelection").IVoxelShapeSelection>; voxelData: Partial; usePlacingStrategy: boolean; placePosition: Vector3Like; protected _position: Vector3Like; constructor(space: VoxelBuildSpace); update(): Promise; cancel(): void; use(): Promise; protected getPlacePosition(position: Vector3Like): Vector3Like; updateShape(shape: string): void; getOptionValue(property: string): any; getCurrentOptions(): ToolOptionsData; updateOption(property: string, value: any): void; } export {};