import { GpuShaderDefinition } from '../../gpu/porters'; import { d } from '../../gpu/kit'; import { transformColor } from '../../utilities/transformations'; /** Momentum stamp: the general dye-less Gaussian velocity impulse over this fluid's layout. */ export declare const particleFlowForceKernel: import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>; export declare const particleFlowCurlKernel: (cx: number, cy: number) => void, particleFlowDivergenceKernel: (cx: number, cy: number) => void, particleFlowJacobiKernel: (cx: number, cy: number) => void, particleFlowGradSubtractKernel: (cx: number, cy: number) => void, particleFlowAdvectVelKernel: (cx: number, cy: number) => void, particleFlowCopyVelKernel: (cx: number, cy: number) => void; export declare const particleFlowVorticityKernel: (cx: number, cy: number) => void; /** Uniform-scatter spawn (the general agents part): even coverage, at rest. */ export declare const particleFlowInitKernel: import('typegpu').TgpuFn<(i: d.U32) => d.Void>; /** * Advect one particle: the advection-family integrator — bilinear-sample the fluid velocity at * the particle's screen-uv, convert grid velocity to world units, ease toward it (inertia → * massy drift), add the weak R2 home-spring, integrate, and clamp to the domain (the field is * wall-tangential, so the clamp almost never engages — the spring does the real edge recovery). */ export declare const particleFlowIntegrateKernel: (i: number) => void; export declare const makeParticleFlowSplatKernel: (shape: string) => (i: number) => void; export declare const makeParticleFlowResolveKernel: (mode: number, trailsOn: boolean) => (x: number, y: number) => void; export declare const particleFlowSplatKernel: (i: number) => void; export declare const particleFlowResolveKernel: (x: number, y: number) => void; export interface ComponentProps { /** * Number of drifting particles * * Accepts a number between 1000 and 16000. * @default 6000 */ count: number; /** * How hard the cursor * * Accepts a number between 0 and 3. * @default 1 */ force: number; /** * Vorticity confinement — swirl energy that spins the flow into persistent eddies and vortices the dust orbits * * Accepts a number between 0 and 60. * @default 25 */ swirl: number; /** * How long the fluid keeps flowing after you stop dragging — high momentum lets the eddies carry the dust on and on * * Accepts a number between 0 and 1. * @default 0.6 */ momentum: number; /** * A gentle, ever-evolving breeze that keeps the dust drifting even without the cursor — set to 0 for a field that only moves when you stir it * * Accepts a number between 0 and 1. * @default 0.15 */ ambient: number; /** * How strongly the fluid carries the particles — higher makes the dust ride the flow faster * * Accepts a number between 0.2 and 3. * @default 1 */ speed: number; /** * What each particle is drawn as — a streak or arrow that stretches along the flow, a plain dot, a square, or a soft glowing comet * * Accepts one of the predefined option values. * @default "streak" */ shape: string; /** * Size of each particle * * Accepts a number between 0.3 and 3. * @default 1.2 */ size: number; /** * How long each particle * * Accepts a number between 0 and 1. * @default 0 */ trails: number; /** * Color of particles drifting slowly with the flow * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#8ec5ff" */ colorA: Parameters[0]; /** * Color particles flash toward as they speed up in the fast jets and wakes * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#ffd98e" */ colorB: Parameters[0]; /** * Color space for the rest→excited color ramp * * Accepts one of the predefined option values. * @default "oklab" */ colorSpace: string; } export declare const componentDefinition: GpuShaderDefinition; export default componentDefinition; //# sourceMappingURL=index.d.ts.map