import * as _angular_core from '@angular/core'; /** * Splash cursor — a WebGL fluid simulation that splashes colourful dye * wherever the pointer moves or clicks. Renders as a fixed, full-viewport, * click-through overlay; mount it once on a page (it follows the pointer * everywhere) and it tears down with the component. * * Renders nothing under `prefers-reduced-motion` or when WebGL is * unavailable. * * @example * ```html * * * ``` * * @see https://ngwr.dev/animations/splash-cursor */ declare class WrSplashCursor { /** * `true` overlays the whole viewport (reactbits behaviour); `false` * fills the nearest positioned ancestor instead — handy for demo boxes, * and the dye collides with the box walls. @default true */ readonly fullscreen: _angular_core.InputSignalWithTransform; /** Velocity / pressure grid resolution. @default 128 */ readonly simResolution: _angular_core.InputSignalWithTransform; /** Dye texture resolution — the visible detail. @default 1440 */ readonly dyeResolution: _angular_core.InputSignalWithTransform; /** How fast the dye fades, higher = shorter trails. @default 3.5 */ readonly densityDissipation: _angular_core.InputSignalWithTransform; /** How fast motion settles. @default 2 */ readonly velocityDissipation: _angular_core.InputSignalWithTransform; /** Pressure retained between frames, 0..1. @default 0.1 */ readonly pressure: _angular_core.InputSignalWithTransform; /** Jacobi iterations for the pressure solve. @default 20 */ readonly pressureIterations: _angular_core.InputSignalWithTransform; /** Vorticity confinement — swirliness. @default 3 */ readonly curl: _angular_core.InputSignalWithTransform; /** Splat size. @default 0.2 */ readonly splatRadius: _angular_core.InputSignalWithTransform; /** Velocity a pointer move injects. @default 6000 */ readonly splatForce: _angular_core.InputSignalWithTransform; /** Pseudo-3D shading on the dye. @default true */ readonly shading: _angular_core.InputSignalWithTransform; /** How fast the splat colour cycles. @default 10 */ readonly colorUpdateSpeed: _angular_core.InputSignalWithTransform; /** Cycle splat colours through the rainbow. @default true */ readonly rainbow: _angular_core.InputSignalWithTransform; /** Fixed splat colour when `rainbow` is off. @default '#ff0000' */ readonly color: _angular_core.InputSignal; private readonly canvasRef; private readonly zone; private readonly platform; private readonly isBrowser; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * @license * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE * * WebGL fluid simulation behind ``. Port of the engine * used by reactbits.dev's SplashCursor (itself based on Pavel Dobryakov's * WebGL-Fluid-Simulation, MIT). * * Framework-free on purpose: `createFluidSimulation(canvas, config)` boots * the sim and returns a teardown, or `null` when WebGL isn't available. */ interface WrFluidConfig { readonly simResolution: number; readonly dyeResolution: number; readonly densityDissipation: number; readonly velocityDissipation: number; readonly pressure: number; readonly pressureIterations: number; readonly curl: number; readonly splatRadius: number; readonly splatForce: number; readonly shading: boolean; readonly colorUpdateSpeed: number; /** Cycle splat colours through the rainbow; `false` uses `color`. */ readonly rainbow: boolean; /** Fixed splat colour (hex) when `rainbow` is off. */ readonly color: string; } export { WrSplashCursor }; export type { WrFluidConfig };