import * as THREE from 'three/webgpu'; /** Optional colors for the positive and negative halves of each axis. */ export interface PlainAxisColors { x?: THREE.ColorRepresentation; y?: THREE.ColorRepresentation; z?: THREE.ColorRepresentation; } /** Typed attributes owned by a {@link PlainAxis} geometry. */ export type PlainAxisGeometryAttributes = THREE.NormalBufferAttributes & { position: THREE.Float32BufferAttribute; color: THREE.Float32BufferAttribute; }; /** Geometry type used by {@link PlainAxis}. */ export type PlainAxisGeometry = THREE.BufferGeometry; /** Material shape supported by Three.js line copy/customization flows. */ export type PlainAxisMaterial = THREE.LineBasicMaterial | THREE.LineBasicMaterial[]; /** * PlainAxis — A simple line-based axis mesh similar to Blender's "Empty - Plain Axes". * Draws full X, Y, Z axes crossing at the origin. * * @augments THREE.LineSegments * * @example * const axis = new PlainAxis(1); * scene.add(axis); */ declare class PlainAxis extends THREE.LineSegments { /** * Constructs a new PlainAxis. * * @param {number} [size=1] - Length from center to each end. Total per-axis length = 2×size. * @param {Object} [colors] - Optional axis colors. * @param {(number|string|THREE.Color)} [colors.x=0xff0000] - X axis color. * @param {(number|string|THREE.Color)} [colors.y=0x00ff00] - Y axis color. * @param {(number|string|THREE.Color)} [colors.z=0x0000ff] - Z axis color. */ constructor(size?: number, colors?: PlainAxisColors); /** * Update axis colors. * @param {(number|THREE.Color|string)} xAxisColor - New color for X axis. * @param {(number|THREE.Color|string)} yAxisColor - New color for Y axis. * @param {(number|THREE.Color|string)} zAxisColor - New color for Z axis. * @returns {PlainAxis} */ setColors(xAxisColor: THREE.ColorRepresentation, yAxisColor: THREE.ColorRepresentation, zAxisColor: THREE.ColorRepresentation): this; /** * Dispose GPU resources used by this helper. * @returns {void} */ dispose(): void; } /** Public marker merged without adding a runtime class field. */ interface PlainAxis { type: 'PlainAxis'; } export { PlainAxis };