import { GpuComputeNode } from '../../gpu/contract'; import { d } from '../../gpu/kit/index'; interface VoronoiGraph { layout: ReturnType['layout']; kernel: ReturnType['kernel']; } declare function makeVoronoiGraph(count: number, size: number): { layout: import('typegpu').TgpuBindGroupLayout<{ cellPos: { storage: d.WgslArray; access: "readonly"; }; voronoiTex: { storageTexture: d.WgslStorageTexture2d<"rgba16float", string>; }; }>; kernel: import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>; }; /** The per-(count, size) Voronoi nearest-2 graph (both baked as compile-time constants). */ export declare function voronoiNearest2Graph(count: number, size: number): VoronoiGraph; export declare function cellLaneUVFor(laneWidth: number): import('typegpu').TgpuFn<(idx: d.F32, field: d.F32) => d.Vec2f>; export declare const CrackGeom: d.WgslStruct<{ crackIntensity: d.F32; edgeNormal: d.Vec2f; displacedUV: d.Vec2f; disp: d.Vec2f; }>; export declare const crackGeom: import('typegpu').TgpuFn<(uv: d.Vec2f, nPosX: d.F32, nPosY: d.F32, sPosX: d.F32, sPosY: d.F32, dispX: d.F32, dispY: d.F32, crackWidth: d.F32) => d.WgslStruct<{ crackIntensity: d.F32; edgeNormal: d.Vec2f; displacedUV: d.Vec2f; disp: d.Vec2f; }>>; /** Per-channel refracted sample UV (channel −1/0/+1 → chromatic split). */ export declare const crackRefractUV: import('typegpu').TgpuFn<(displacedUV: d.Vec2f, edgeNormal: d.Vec2f, crackIntensity: d.F32, refractionStrength: d.F32, chromaticSplit: d.F32, channel: d.F32) => d.Vec2f>; /** Final composite: crack refraction blend + tilted-shard lighting (pre-unpremultiply). */ export declare const crackShardCompose: import('typegpu').TgpuFn<(normalColor: d.Vec4f, rFinal: d.Vec4f, gFinal: d.Vec4f, bFinal: d.Vec4f, crackIntensity: d.F32, disp: d.Vec2f, shardLighting: d.F32) => d.Vec4f>; /** * The Voronoi region field as a compute part: nearest + second-nearest cell ID per pixel, * precomputed on the GPU and re-dispatched only when the seed prop changes (avoiding a * many-megaop CPU stall). Cell positions live in a small storage buffer regenerated CPU-side by * `sites(seed)` on seed change; between changes the field is static and the frame program * dispatches nothing. Published under `output`. */ export declare function voronoiRegionField(opts: { count: number; size: number; sites: (seed: number) => Float32Array; seedProp: string; seedDefault: number; output: string; }): GpuComputeNode; export {}; //# sourceMappingURL=fracture.d.ts.map