import * as THREE from 'three'; import { MeshLineGeometry as MeshLineGeometryImpl, MeshLineMaterial } from 'meshline'; type BaseSettings = { width: number; length: number; decay: number; local: boolean; stride: number; interval: number; instanceCount: number; }; type GeometrySettings = { geometry: THREE.BufferGeometry; material: THREE.Material; } | { geometry?: never; material?: never; }; export type TrailProps = { color?: THREE.ColorRepresentation; attenuation?: (width: number) => number; target: THREE.Object3D; } & Partial & GeometrySettings; export type MeshLineGeometry = THREE.Mesh & MeshLineGeometryImpl; export declare class Trail extends THREE.Group { trailParams: { width: number; length: number; decay: number; local: boolean; stride: number; interval: number; instanceCount: number; color: THREE.ColorRepresentation; attenuation: (width: number) => number; target: THREE.Object3D; }; trailData: { isUsingCustomGeometry: boolean; points: Float32Array; geometry: MeshLineGeometryImpl | THREE.BufferGeometry; material: MeshLineMaterial | THREE.Material; mesh: THREE.Mesh | THREE.InstancedMesh; }; private trailTemp; constructor(props: TrailProps); rebuildTrail(props: TrailProps): void; updateSize(w: number, h: number): void; private updateTrailPoints; private updateLineMesh; private updateInstances; update(): void; } export {};