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 hologram 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 hologram shape (1 = default size) * * Accepts a number between 0.1 and 3. * @default 1 */ scale: number; /** * Rotation of the hologram shape in degrees * * Accepts a number between 0 and 360. * @default 0 */ rotation: number; /** * Projection tint — the colour the whole hologram emits (classic sci-fi cyan by default) * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#5ec8ff" */ color: Parameters[0]; /** * Overall emission gain. Bright edges blow out toward white for a hot, projected look. * * Accepts a number between 0.2 and 3. * @default 2.5 */ brightness: number; /** * Translucent interior glow. Driven by optical thickness, so thicker parts of a 3D form glow more — the core volumetric cue. * * Accepts a number between 0 and 1. * @default 0.45 */ fill: number; /** * Fresnel rim intensity — bright glowing silhouette and, on 3D shapes, the grazing internal walls of extruded logos * * Accepts a number between 0 and 2.5. * @default 1 */ edgeGlow: number; /** * Iso-depth scan-lines that hug the surface and reveal the 3D form like a volumetric scan. On flat shapes they become concentric contour rings. * * Accepts a number between 0 and 1. * @default 0.5 */ depthLines: number; /** * Density of the depth scan-lines — higher packs more contour bands through the volume * * Accepts a number between 4 and 70. * @default 26 */ depthScale: number; /** * CRT scanline contrast — how dark the gaps between horizontal projection lines get * * Accepts a number between 0 and 1. * @default 0.55 */ scanlines: number; /** * Number of horizontal scanlines across the canvas height * * Accepts a number between 20 and 400. * @default 130 */ scanlineScale: number; /** * How fast the scanlines drift upward — 0 holds them static * * Accepts a number between 0 and 5. * @default 1 */ scanlineSpeed: number; /** * Brightness of the refresh bar that sweeps vertically through the projection * * Accepts a number between 0 and 1. * @default 0.1 */ sweep: number; /** * Unstable-projector flicker — a fast shimmer plus occasional brightness dropouts * * Accepts a number between 0 and 1. * @default 0.3 */ flicker: number; /** * Continuous horizontal wobble and chromatic edge fringing — the wavering of an unstable beam * * Accepts a number between 0 and 1. * @default 0.1 */ distortion: number; /** * Fine projection static — animated per-pixel noise over the emission * * Accepts a number between 0 and 1. * @default 0.7 */ grain: number; /** * Master animation speed for every animated layer. 0 freezes the projection. * * Accepts a number between 0 and 3. * @default 1 */ speed: number; /** * Softness of the shape boundary edge — keep low for crisp projection edges * * Accepts a number between 0 and 1. * @default 0.04 */ edgeSoftness: 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