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 ice 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 ice shape (1 = default size) * * Accepts a number between 0.1 and 3. * @default 1 */ scale: number; /** * Rotation of the ice shape in degrees * * Accepts a number between 0 and 360. * @default 0 */ rotation: number; /** * Ice tint — the colour deep ice saturates toward (thin edges stay near white) * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#0597fc" */ iceColor: Parameters[0]; /** * Surface sheen — the broad soft icy specular * * Accepts a number between 0 and 1. * @default 0.6 */ gloss: number; /** * Cool ambient fill so shadowed ice never goes black * * Accepts a number between 0 and 1. * @default 0 */ ambient: number; /** * Softness of the shape boundary edge * * Accepts a number between 0 and 1. * @default 0.05 */ edgeSoftness: number; /** * Optical depth multiplier — how thick and deep the ice reads * * Accepts a number between 0 and 10. * @default 5 */ density: number; /** * Beer–Lambert absorption strength — higher drives a deeper blue-teal core * * Accepts a number between 0 and 2. * @default 1 */ absorption: number; /** * Forward back-lit glow transmitted through thin ice * * Accepts a number between 0 and 1. * @default 0.5 */ scatter: number; /** * Overall density of the rim frost crystals * * Accepts a number between 0 and 1. * @default 0.8 */ frostAmount: number; /** * How far the frost creeps inward from the rim * * Accepts a number between 0 and 1. * @default 0.4 */ frostDepth: number; /** * Crystal size — higher = finer, busier frost * * Accepts a number between 0.3 and 4. * @default 1 */ frostScale: number; /** * Feathery roughness of the frost crystal surface * * Accepts a number between 1 and 5. * @default 3 */ frostRoughness: number; /** * Tiny bright crystal glints catching the light at the rim * * Accepts a number between 0 and 1. * @default 0.5 */ sparkle: number; /** * Cold rim glow on grazing surfaces * * Accepts a number between 0 and 1. * @default 0.02 */ fresnel: number; /** * Key light direction in degrees * * Accepts a number between 0 and 360. * @default 300 */ lightAngle: number; /** * Sparkle twinkle speed. 0 freezes the sparkle. * * Accepts a number between 0 and 2. * @default 0.3 */ speed: 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