import { GpuShaderDefinition } from '../../gpu/porters'; import { transformPosition, transformColor } from '../../utilities/transformations'; import { BoundingBoxOrigin } from '../../types'; /** Resolve the active analytic shape type (compile-time `shapeType`, else the shape JSON's type). */ 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 neon 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 neon shape (1 = default size) * * Accepts a number between 0.1 and 3. * @default 1 */ scale: number; /** * Rotation of the neon shape in degrees * * Accepts a number between 0 and 360. * @default 0 */ rotation: number; /** * Primary neon tube color * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#00ddff" */ color: Parameters[0]; /** * Shadow-side color for a two-tone / dual-lit pipe look * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#ff00aa" */ secondaryColor: Parameters[0]; /** * Blend between mono (0) and two-tone (1) tube coloring * * Accepts a number between 0 and 1. * @default 0.5 */ secondaryBlend: number; /** * Color of the outer glow / bloom * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#00ddff" */ glowColor: Parameters[0]; /** * How far inward from the boundary the tube extends. Low = thin neon outline, high = thick 3D pipe * * Accepts a number between 0 and 1. * @default 0.2 */ tubeThickness: number; /** * Overall brightness multiplier * * Accepts a number between 0.5 and 4. * @default 1.5 */ intensity: number; /** * Bright white-hot center line — the gas discharge glow inside the tube * * Accepts a number between 0 and 1. * @default 0.6 */ hotCoreIntensity: number; /** * Outer glow / bloom strength * * Accepts a number between 0 and 2. * @default 0.6 */ glowIntensity: number; /** * How far the glow extends beyond the tube * * Accepts a number between 0.01 and 1. * @default 0.25 */ glowRadius: number; /** * Directional light angle in degrees — controls 3D shading on the tube * * Accepts a number between 0 and 360. * @default 300 */ lightAngle: number; /** * Specular highlight brightness on the tube surface * * Accepts a number between 0 and 2. * @default 0.5 */ specularIntensity: number; /** * Specular highlight size — 0 = tight pinpoint, 1 = broad sheen * * Accepts a number between 0 and 1. * @default 0.5 */ specularSize: number; /** * Rounds sharp corners to mimic how real glass tubes curve at bends * * Accepts a number between 0 and 1. * @default 0.15 */ cornerSmoothing: number; /** * Flicker animation speed — 0 = off, higher = faster sporadic on/off * * Accepts a number between 0 and 5. * @default 0 */ flickerSpeed: number; /** * How often the neon flickers off — 0 = always on, 1 = frequent outages * * Accepts a number between 0 and 1. * @default 0.2 */ flickerAmount: number; /** * Flow animation speed — 0 = off, light rotates through the tube * * Accepts a number between 0 and 5. * @default 0 */ flowSpeed: number; /** * Strength of the flowing brightness variation — 0 = uniform, 1 = dramatic * * Accepts a number between 0 and 1. * @default 0.3 */ flowAmount: number; /** * Serialized shape configuration (JSON) * * @default "DEFAULT_SHAPE_CONFIG" */ shape: string | Record; /** * URL to a pre-generated SDF .bin file — when non-empty, activates SVG mode and triggers a shader recompile * * @default "" */ shapeSdfUrl: string; /** * Active SDF shape type — triggers recompile when shape is switched. When empty, derived from shape JSON at mount time. * * @default "" */ shapeType: string; } export declare const componentDefinition: GpuShaderDefinition; export default componentDefinition; //# sourceMappingURL=index.d.ts.map