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 chrome 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 chrome shape (1 = default size) * * Accepts a number between 0.1 and 3. * @default 1 */ scale: number; /** * Rotation of the chrome shape in degrees * * Accepts a number between 0 and 360. * @default 0 */ rotation: number; /** * Metal tint multiplied into the reflection — white for silver chrome, warm ivory for gold, dusky rose for copper * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#ffffff" */ tint: Parameters[0]; /** * Color of the warm strip light hugging the studio horizon — the amber band that fringes the reflections * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#ffa94d" */ warmColor: Parameters[0]; /** * Color of the cool wash below the horizon — the steel-blue zone the darker reflections fall into * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#82a7e6" */ coolColor: Parameters[0]; /** * Width of the polished edge bevel, relative to the shape — thin for machined jewellery edges, wide for soft pillowed metal * * @default 0.028 */ bevelWidth: number; /** * Bevel profile — 0 = one smooth round fillet, 1 = machined: a steep outer fillet, a chamfer plateau and an inner knee, each catching its own line of light * * @default 0.55 */ bevelShape: number; /** * Convex doming of the faces — sweeps the big soft studio gradients across otherwise flat metal * * @default 0.5 */ curvature: number; /** * Pressed-metal imperfection — gently bends the face reflections and wobbles the bevel light lines so the surface reads as real * * @default 0.15 */ waviness: number; /** * Exposure of the reflected studio — the overall brilliance of the chrome * */ environment: number; /** * Rotates the whole reflected studio — spins where the softbox, flags and strips fall * */ envRotation: number; /** * Softness of the studio edges — 0 = razor polished reflections, 1 = satin diffusion * * @default 0.3 */ softness: number; /** * The coloured accent lights: an amber glow hugging the softbox edge and an ice-blue wash below it. 0 = a fully achromatic black-and-white studio. * * @default 0.9 */ spectral: number; /** * Prismatic RGB splitting concentrated on the fast-curving bevel — thin rainbow micro-fringes along the edge highlights, distinct from the broad accent lights * * @default 0.3 */ dispersion: number; /** * Depth of the dark studio reflections — how hard the black side flags and floor crush toward graphite. 0 lifts them to a soft gray studio. * * @default 0.7 */ shadows: number; /** * Speed of the studio orbit — the whole lighting environment slowly wanders around the piece, sliding the reflections across faces and edges. 0 freezes it. * * Accepts a number between 0 and 4. * @default 0.5 */ speed: number; edgeSoftness: 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