import { GpuShaderDefinition } from '../../gpu/porters'; import { transformPosition, transformColor } 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; /** * Center position of the goo * * 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 goo (1 = default size) * * Accepts a number between 0.1 and 3. * @default 1 */ scale: number; /** * Rotation of the goo in degrees * * Accepts a number between 0 and 360. * @default 0 */ rotation: number; /** * Base liquid color (a glossy slime green by default) * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#37c95a" */ gooColor: Parameters[0]; /** * Subsurface glow strength — deep lobes transmit more color * * Accepts a number between 0 and 1. * @default 0.6 */ translucency: number; /** * How fast thin areas clear and thick areas saturate (Beer–Lambert) * * Accepts a number between 0 and 6. * @default 2 */ absorb: number; /** * 0 = free blobs that ignore the shape, 1 = goo fills the shape and its surface conforms to the 3D form (highlights track the faces as it rotates) * * Accepts a number between 0 and 1. * @default 0.9 */ containment: number; /** * Softness of the blob coverage edge * * Accepts a number between 0 and 0.3. * @default 0.06 */ edgeSoftness: number; /** * Base radius of each liquid lobe * * Accepts a number between 0.1 and 1. * @default 0.3 */ blobScale: number; /** * How far the lobes scatter across the shape * * Accepts a number between 0 and 2. * @default 1 */ spread: number; /** * How much the lobes fuse together — low = distinct beads, high = one fused mass * * Accepts a number between 0 and 1. * @default 0.6 */ merge: number; /** * How 3D-rounded each lobe reads — dome height of the wet surface * * Accepts a number between 0 and 1.5. * @default 1 */ bulge: number; /** * Iso-surface level — lower makes fatter, fuller blobs * * Accepts a number between 0.2 and 0.9. * @default 0.5 */ threshold: number; /** * Light direction in degrees * * Accepts a number between 0 and 360. * @default 300 */ lightAngle: number; /** * Master scale on the sharp specular highlight and clearcoat rim * * Accepts a number between 0 and 5. * @default 2 */ wetness: number; /** * Clearcoat fresnel rim strength wrapping each lobe * * Accepts a number between 0 and 1. * @default 0.25 */ fresnel: number; /** * Highlight / rim color (white reads as a clear wet coat) * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#ffffff" */ specColor: Parameters[0]; /** * Base fill so shadowed goo isn\ * * Accepts a number between 0 and 1. * @default 0.25 */ ambient: number; /** * Drift and breathe speed of the blobs. 0 pauses. * * Accepts a number between 0 and 2. * @default 0.5 */ speed: number; /** * Drift amplitude — how far the lobe centers wander * * Accepts a number between 0 and 1. * @default 0.5 */ wobble: number; /** * Radius pulsing amplitude — lobes swell and shrink * * Accepts a number between 0 and 1. * @default 0.3 */ breathe: number; /** * Variation offset — shifts the blob arrangement * * Accepts a number between 0 and 100. * @default 1 */ seed: number; /** * 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 componentDefinition: GpuShaderDefinition; export default componentDefinition; //# sourceMappingURL=index.d.ts.map