import { isMobileGpuViewport } from './device'; export { isMobileGpuViewport }; export declare const SHAPE3D_TYPES: readonly ["sphere3D", "cube3D", "torus3D", "octahedron3D", "cylinder3D", "capsule3D", "cone3D", "pyramid3D", "prism3D", "ellipsoid3D", "diamond3D", "link3D", "gem3D", "helix3D", "metaballs3D", "dodecahedron3D", "hemisphere3D", "ribbon3D", "blob3D", "gyroscope3D"]; export type Shape3DType = typeof SHAPE3D_TYPES[number]; export declare function is3dShapeType(shapeType: string): shapeType is Shape3DType; export declare const SVG3D_TYPES: readonly ["svgExtrude3D"]; export type Svg3DType = typeof SVG3D_TYPES[number]; export declare function isSvg3dShapeType(shapeType: string): shapeType is Svg3DType; /** True when the shape type produces a volumetric (raymarched) field — analytic 3D or SVG 3D. */ export declare function isVolumetricShapeType(shapeType: string): boolean; /** Defaults for the SVG 3D sub-props stored in the shape JSON (shared by sampler, bounds, and UI). */ export declare const SVG3D_DEFAULTS: Record; /** * Per-frame context for resolving shape sub-props: time (auto-animate phase), pointer * (mouse drivers) and a persistent per-key spring store (mouse smoothing/momentum). */ export interface ShapeSubPropFrame { /** Wall-clock seconds since sampler creation (drives auto-animate phase). */ elapsed: number; /** Seconds since the previous frame (drives mouse spring integration). */ deltaTime: number; /** Normalised pointer position in [0,1]. */ pointerX: number; pointerY: number; /** Persistent spring state per sub-prop key (mouse smoothing/momentum). */ springs: Map; } /** * Resolve a shape sub-prop value that may be a number, an auto-animate config, or a * mouse config. Auto base rate matches the renderer's prop drivers (0.2 cycles/sec → * 5s full cycle at speed 1); mouse mapping (axis → spring → curve → output range) * mirrors the renderer's resolveMouseMapForProp so behaviour matches top-level props. */ export declare function resolveShapeSubProp(value: any, fallback: number, frame: ShapeSubPropFrame, key: string): number; /** Static bound for a sub-prop value: the largest magnitude it can take (for bounding boxes). */ export declare function shapeSubPropMax(value: any, fallback: number): number; /** * Maximum metaballs3D ball count. Canonical here (this module is the CPU-only mirror the GPU kit * imports); shared by the `sdMetaballs` kernel loop and the CPU pack/clamp in * `gpu/kit/sdf3d.ts`. Raising it also means adding matching named `mbN: d.vec3f` fields to * `MarchParams` (strict uniform layout — named fields, full-write only) and threading them * through `sdMetaballs`' explicit args and the two `writeMarch` sites. */ export declare const MAX_METABALLS = 8; export declare const SHAPE3D_DEFAULTS: Record>; /** * Conservative bounding radius (field UV units) for a 3D shape config — radius of * the bounding sphere, which contains the silhouette under any rotation. * Sub-prop values may be auto-animate configs; the max output bound is used. */ export declare function shape3dBoundingRadius(cfg: Record): number; //# sourceMappingURL=sdf3d.d.ts.map