import { GpuShaderDefinition } from '../../gpu/porters'; import { d } from '../../gpu/kit'; import { transformColor } from '../../utilities/transformations'; /** Spawn: park every filing at its home (zero offset), scattered starting angle, zero spin. */ export declare const filingsInitKernel: import('typegpu').TgpuFn<(i: d.U32) => d.Void>; /** * The integrator: the nematic align-to-field torque plus the weak rest-orientation torque, * folded in that order, with the orientation-family integrator owning the angular drag, the * |ω| activity envelope, and the gentle position dynamics (field pull + spring home + clamp). */ export declare const filingsUpdateKernel: (i: number) => void; export declare const makeFilingsSplatKernel: (shape: string) => (i: number) => void; export declare const makeFilingsResolveKernel: (mode: number) => (x: number, y: number) => void; export declare const filingsSplatKernel: (i: number) => void; export declare const filingsResolveKernel: (x: number, y: number) => void; export interface ComponentProps { /** * Number of iron filings * * Accepts a number between 500 and 12000. * @default 8000 */ count: number; /** * The magnetic field the filings reveal — a dipole (bar-magnet lobes that follow the cursor * * Accepts one of: `"dipole"`, `"radial"`. * @default "dipole" */ fieldType: string; /** * How strongly the magnet grips the filings — higher snaps more of them into sharp alignment * * Accepts a number between 0 and 3. * @default 1.7 */ strength: number; /** * How briskly filings swing and settle — low is loose and floppy with a long wobble, high snaps into place quickly * * Accepts a number between 0 and 1. * @default 0.5 */ response: number; /** * How far the magnet * * Accepts a number between 0.1 and 1. * @default 0.6 */ reach: number; /** * Which way filings point where the field can * * Accepts one of: `"random"`, `"horizontal"`, `"vertical"`. * @default "random" */ restOrientation: string; /** * How each filing is drawn — a slim streak or arrow reads as a compass needle, a box as a chunky filing, a dot or soft glow for a finer grain * * Accepts one of the predefined option values. * @default "dot" */ shape: string; /** * Size of each filing * * Accepts a number between 0.5 and 3. * @default 1 */ size: number; /** * Color of filings resting quietly, aligned and still * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#be1ef9" */ colorA: Parameters[0]; /** * Color filings flash toward as they swing and settle — a wave of it follows the moving magnet * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#6326ff" */ 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