import { Component, ConstructorProps, ContextManager } from '@zcomponent/core'; import * as THREE from 'three'; /** * Type alias for constructor properties. It extends the ConstructorProps from the @zcomponent/core package. * This alias is specific for the BufferGeometry class, allowing for type consistency and easier refactoring. */ export type BufferGeometryConstructorProps = ConstructorProps; /** * BufferGeometry class extends the Component class, designed for working with THREE.js BufferGeometry objects. * This class provides a structured way to integrate THREE.js geometries into the zcomponent/three package. * * Root element: [THREE.BufferGeometry](https://threejs.org/docs/#api/en/core/BufferGeometry) * * * @template T - A generic type extending THREE.BufferGeometry, allowing for the creation of various types of geometries. * * @property element - Public property of generic type T, representing the THREE.js BufferGeometry instance. * * @constructor * @param {ContextManager} contextManager - ContextManager instance from zcomponent/core, managing the context in which this component operates. * @param {BufferGeometryConstructorProps} props - Constructor properties, extending ConstructorProps from zcomponent/core. * @param {T} element - An instance of THREE.BufferGeometry or its subclass, representing the geometry managed by this component. * */ export declare class BufferGeometry extends Component { element: T; /** * Constructs a new BufferGeometry Component. * @param contextManager - The context manager. * @param props - The properties required to construct the BufferGeometry. * @param element - The BufferGeometry element. */ constructor(contextManager: ContextManager, props: BufferGeometryConstructorProps, element: T); /** * Dispose method for BufferGeometry. It handles the cleanup of the geometry's resources. * Calls the dispose method of the THREE.BufferGeometry instance, then invokes the dispose method of the parent class. * This ensures that both the geometry and component resources are properly released. * * @returns The result of calling the dispose method of the parent class. */ dispose(): never; }