import { type HTMLAttributes, type Ref } from 'react'; import * as THREE from 'three'; export type HyperspeedDistortion = { uniforms: Record; getDistortion: string; getJS?: (progress: number, time: number) => THREE.Vector3; }; export type HyperspeedColors = { roadColor: number; islandColor: number; background: number; shoulderLines: number; brokenLines: number; leftCars: number[]; rightCars: number[]; sticks: number | number[]; }; export type HyperspeedOptions = { onSpeedUp?: (ev: MouseEvent | TouchEvent) => void; onSlowDown?: (ev: MouseEvent | TouchEvent) => void; distortion?: string | HyperspeedDistortion; length: number; roadWidth: number; islandWidth: number; lanesPerRoad: number; fov: number; fovSpeedUp: number; speedUp: number; carLightsFade: number; totalSideLightSticks: number; lightPairsPerRoadWay: number; shoulderLinesWidthPercentage: number; brokenLinesWidthPercentage: number; brokenLinesLengthPercentage: number; lightStickWidth: [number, number]; lightStickHeight: [number, number]; movingAwaySpeed: [number, number]; movingCloserSpeed: [number, number]; carLightsLength: [number, number]; carLightsRadius: [number, number]; carWidthPercentage: [number, number]; carShiftX: [number, number]; carFloorSeparation: [number, number]; colors: HyperspeedColors; isHyper?: boolean; }; export type HyperspeedEffectOptions = Partial> & { colors?: Partial; }; export type HyperspeedProps = Omit, 'children'> & { effectOptions?: HyperspeedEffectOptions; ref?: Ref; }; export declare const Hyperspeed: ({ className, effectOptions, ref, style, "aria-hidden": ariaHidden, ...props }: HyperspeedProps) => import("react/jsx-runtime").JSX.Element; export default Hyperspeed;