import { GpuShaderDefinition } from '../../gpu/porters'; import { d } from '../../gpu/kit'; import { transformColor, transformPosition } from '../../utilities/transformations'; import { BoundingBoxOrigin } from '../../types'; export interface ComponentProps { /** * Reference edge the center position is measured from (center default). Lets you pin the shape relative to a corner or the canvas centre. * * @default "center" */ origin: BoundingBoxOrigin; /** * Color of fresh smoke * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#8cf3ff" */ colorA: Parameters[0]; /** * Color smoke transitions to as it ages * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#04a0d6" */ colorB: Parameters[0]; /** * Center position of the shape * * Accepts `{ x, y }` objects with values from 0 to 1, or CSS positions like `top center`. * @default {"x":0.5,"y":0.5} */ center: Parameters[0]; /** * Scale of the shape (1 = default size) * * Accepts a number between 0.1 and 3. * @default 1 */ scale: number; /** * Rotation of the shape in degrees * * Accepts a number between 0 and 360. * @default 0 */ rotation: number; /** * Emission source point within the shape * * Accepts `{ x, y }` objects with values from 0 to 1, or CSS positions like `top center`. * @default {"x":0.5,"y":0.5} */ emitFrom: Parameters[0]; /** * Emission direction (0 = up, 90 = right, 180 = down, 270 = left) * * Accepts a number between 0 and 360. * @default 0 */ direction: number; /** * Emission velocity strength * * Accepts a number between 0.1 and 30. * @default 10 */ speed: number; /** * Emission cone angle in degrees * * Accepts a number between 0 and 180. * @default 60 */ spread: number; /** * Size of the emission area * * Accepts a number between 0.01 and 0.3. * @default 0.03 */ emitRadius: number; /** * Smoke emission density * * Accepts a number between 0.1 and 1. * @default 1 */ intensity: number; /** * How fast smoke fades over time * * Accepts a number between 0.1 and 5. * @default 0.3 */ dissipation: number; /** * Fine-scale swirling detail * * Accepts a number between 0 and 50. * @default 25 */ detail: number; /** * Downward gravitational pull on smoke — 0 = weightless, negative values = smoke rises * * Accepts a number between -2 and 2. * @default 0.5 */ gravity: number; /** * How quickly smoke shifts from Color A to Color B * * Accepts a number between 0 and 3. * @default 0.4 */ colorDecay: number; /** * Strength of cursor influence * * Accepts a number between 0 and 2. * @default 0.1 */ mouseInfluence: number; /** * Radius of cursor influence area * * Accepts a number between 0.02 and 0.5. * @default 0.1 */ mouseRadius: number; /** * Color space for color interpolation * * Accepts one of the predefined option values. * @default "linear" */ colorSpace: string; /** * Serialized shape configuration (JSON) * * @default "DEFAULT_SHAPE_CONFIG" */ shape: string | Record; /** * URL to a pre-generated SDF .bin file * * @default "" */ shapeSdfUrl: string; /** * Active SDF shape type * * @default "" */ shapeType: string; } export declare const makeMaskKernel: (shapeType: string) => import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>; export declare const svgMaskKernel: import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>; export declare const vfMaskKernel: import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>; 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, advectDensKernel: ((cx: number, cy: number) => void) | undefined, copyDensKernel: ((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