import { GpuShaderDefinition } from '../../gpu/porters'; import { transformColor } from '../../utilities/transformations'; import { ColorStop } from '../../utilities/colorStops'; export type { ColorStop }; export interface ComponentProps { /** * Color of fresh trails * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#00aaff" */ colorA: Parameters[0]; /** * Color trails transition to as they fade * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#ff00aa" */ colorB: Parameters[0]; stops: ColorStop[] | null; /** * Base radius of the trail stroke * * Accepts a number between 0.5 and 2. * @default 0.5 */ radius: number; /** * How long the trail persists (in seconds) * * Accepts a number between 0.1 and 2. * @default 0.5 */ length: number; /** * How much the stroke tapers as it fades out (0 = no taper, 1 = full taper) * * Accepts a number between 0 and 1. * @default 1 */ shrink: number; /** * Edge softness of the trail (0 = crisp paint edge, 1 = very soft) * * @default 0 */ softness: number; /** * Color space for color interpolation * * Accepts one of the predefined option values. * @default "linear" */ colorSpace: string; } /** Per-pixel scan of the trail as a SMOOTH CURVE: the stroke-polyline capsule-chain scan * (midpoint quadratic-Bézier spine, min-union SDF, depth-weighted age blend) over this * trail's point budget → vec2(age, coverage). */ export declare const cursorTrailScan: import('typegpu').TgpuFn<(pointsTex: import('typegpu/data').WgslTexture2d, uv: import('typegpu/data').Vec2f, aspect: import('typegpu/data').F32, radius: import('typegpu/data').F32, shrink: import('typegpu/data').F32, softness: import('typegpu/data').F32, viewportH: import('typegpu/data').F32) => import('typegpu/data').Vec2f>; export declare const componentDefinition: GpuShaderDefinition; export default componentDefinition; //# sourceMappingURL=index.d.ts.map