import { GpuShaderDefinition } from '../../gpu/porters'; import { d } from '../../gpu/kit'; import { transformColor } from '../../utilities/transformations'; export interface ComponentProps { /** * How the brush colour is chosen: an ever-cycling rainbow, a single fixed colour, or a custom three-colour cycle * * Accepts one of: `"rainbow"`, `"single"`, `"custom"`. * @default "rainbow" */ colorMode: string; /** * How quickly the brush cycles through the rainbow or the custom colours as you paint * * Accepts a number between 0 and 4. * @default 1 */ colorSpeed: number; /** * Brush colour used when Color Mode is Single * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#ff2d7e" */ color: Parameters[0]; /** * First colour of the custom brush cycle * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#4338ff" */ color1: Parameters[0]; /** * Second colour of the custom brush cycle * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#ff2d7e" */ color2: Parameters[0]; /** * Third colour of the custom brush cycle * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#19e3ff" */ color3: Parameters[0]; /** * Colour space the custom colours blend through as the brush cycles between them * * Accepts one of the predefined option values. * @default "oklab" */ colorSpace: string; /** * Size of the ink splat painted under the cursor * * Accepts a number between 0.1 and 5. * @default 0.3 */ radius: number; /** * How hard the cursor * * Accepts a number between 0 and 3. * @default 1 */ force: number; /** * Vorticity confinement — swirl energy that spins the ink into persistent eddies and curls * * Accepts a number between 0 and 60. * @default 0 */ curl: number; /** * How fast the ink fades away — low values leave long, lingering trails * * Accepts a number between 0.05 and 4. * @default 0.5 */ decay: number; /** * How long the fluid keeps flowing after a stroke — high momentum lets the motion carry on and on * * Accepts a number between 0 and 1. * @default 0.6 */ momentum: number; } export declare const splatKernel: import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>; export declare const curlKernel: (cx: number, cy: number) => void, vorticityKernel: (cx: number, cy: number) => void, divergenceKernel: (cx: number, cy: number) => void, jacobiKernel: (cx: number, cy: number) => void, gradSubtractKernel: (cx: number, cy: number) => void, advectVelKernel: (cx: number, cy: number) => void, copyVelKernel: (cx: number, cy: number) => void, advectDyeKernel: ((cx: number, cy: number) => void) | undefined, copyDyeKernel: ((cx: number, cy: number) => void) | undefined; export declare const outputKernel: import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>; export declare const componentDefinition: GpuShaderDefinition; export default componentDefinition; //# sourceMappingURL=index.d.ts.map