import * as THREE from 'three'; import type { TubesCursorBloomOptions, TubesCursorProps } from './TubesCursor.types'; export type ResolvedBloomOptions = Required; export type RuntimeOptions = { autoIdle: boolean; autoIdleDelay: number; bloom: false | ResolvedBloomOptions; colors: readonly string[]; depth: number; idle: boolean; idleRadiusX: number; idleRadiusY: number; idleSpeedX: number; idleSpeedY: number; lerp: number; lightColors: readonly string[]; lightIntensity: number; material: THREE.MeshStandardMaterialParameters; maxPixelRatio: number; maxRadius: number; maxTubularSegments: number; minRadius: number; minTubularSegments: number; noise: number; radialSegments: number; randomizeOnClick: boolean; speed: number; tubeCount: number; }; export declare const prefersReducedMotion: () => boolean; export declare const buildRuntimeOptions: ({ autoIdle, autoIdleDelay, bloom, colors, depth, followEase, idle, idleRadiusX, idleRadiusY, idleSpeedX, idleSpeedY, lightColors, lightIntensity, maxPixelRatio, maxRadius, maxTubularSegments, minRadius, minTubularSegments, noise, radialSegments, radius, randomizeOnClick, speed, spread, trailEase, trailLength, tubeCount, tubes, }: Omit) => RuntimeOptions; export declare class TubesCursorRuntime { private readonly options; private readonly autoIdleAnchor; private readonly camera; private readonly canvas; private readonly color; private readonly frameBinormal; private readonly frameNormal; private readonly lights; private readonly normalizedPointer; private readonly plane; private readonly raycaster; private readonly renderer; private readonly root; private readonly scene; private readonly target; private readonly tubeTarget; private readonly tubes; private readonly vertex; private animationFrame; private autoIdleStartTime; private bloomPass; private clockTime; private composer; private disposed; private hasPointer; private height; private lastPointerTime; private pixelRatio; private resizeObserver; private width; private worldHeight; private worldWidth; constructor(root: HTMLDivElement, canvas: HTMLCanvasElement, options: RuntimeOptions); private attachEvents; private createComposer; private createLights; private createTubes; private resolveTubeNoiseAngle; private resolveTubeNoiseDistance; private handleClick; private handlePointerLeave; private handlePointerMove; private handleVisibilityChange; private getLocalPointer; private resize; private resolveCameraFov; private setColors; private setLightColors; private startLoop; private stopLoop; private syncComposerSize; private tick; private render; private update; private resolveTarget; private resolveTubeTarget; private updatePointer; private updateTubeGeometry; private updateWorldSize; destroy(): void; }