import { GpuShaderDefinition } from '../../gpu/porters'; /** * Sim factory — bakes the depth-channel extractor into the relief-family integrator: bilinear- * sample the child at the home UV, derive the target Z from the chosen channel, then integrate * the FORCE-BASED physics (spring toward home/target + the view-space cursor magnet) through the * shared semi-implicit Euler. A particle SNAPS to its target until it has actually seen child * content (the vel.w latch) — no start lurch, no fly-in on load. */ export declare function makeParticleFieldSimKernel(channelMode: number): (x: number, y: number) => void; export declare const makeParticleFieldSplatKernel: (shape: string) => (x: number, y: number) => void; export declare const particleFieldSplatKernel: (x: number, y: number) => void; export declare const particleFieldResolveKernel: (x: number, y: number) => void; export interface ComponentProps { /** * Number of particles — how finely the child is sampled into the field * * Accepts a number within the specified range. * @default 15000 */ count: number; /** * Which channel of the child drives each particle * * Accepts one of the predefined option values. * @default "luminance" */ depthSource: string; /** * Depth of the relief — how far bright and dark areas rise toward and sink away from the camera * * @default 0.7 */ depth: number; /** * What each particle is drawn as — a crisp dot or square, or a soft glow puff * * Accepts one of the predefined option values. * @default "dot" */ particleShape: string; /** * Gentle idle drift that keeps the field breathing even on a still image * * @default 0.35 */ wobble: number; /** * Size of each particle relative to the grid spacing * * @default 0.75 */ particleSize: number; /** * How much far particles dim into the distance — the main cue that sells the 3D relief * * Accepts a number between 0 and 1. * @default 0.6 */ depthShading: number; /** * Camera distance — dolly the whole field closer or further away * * @default 1 */ zoom: number; /** * Camera orbit around the horizontal axis — tilt the relief toward or away from you * * @default 0 */ rotationX: number; /** * Camera orbit around the vertical axis — view the particle extrusion from the side * * @default 0 */ rotationY: number; /** * Camera roll around the view axis * * @default 0 */ rotationZ: number; /** * Shift the whole field horizontally across the frame (in screen widths) * * @default 0 */ offsetX: number; /** * Shift the whole field vertically across the frame (in screen heights) — tilt it flat, then sink it toward the bottom like a ground plane * * @default 0 */ offsetY: number; /** * How the cursor disturbs the field — push throws particles away and toward you, pull gathers them in * * Accepts one of the predefined option values. * @default "push" */ cursorMode: string; /** * Strength of the cursor force — how hard particles get thrown before springing back * * Accepts a number between 0 and 2. * @default 0.8 */ cursorStrength: number; /** * Reach of the cursor field, in screen units * * Accepts a number between 0.05 and 1. * @default 0.2 */ cursorRadius: number; } export declare const componentDefinition: GpuShaderDefinition; export default componentDefinition; //# sourceMappingURL=index.d.ts.map