import { GpuShaderDefinition } from '../../gpu/porters'; import { schema as d } from '../../std'; export interface ComponentProps { /** * Size of the cursor brush that sorts pixels * * @default 0.4 */ radius: number; /** * Softness of the brush edge (0 = hard circle, 1 = very soft) * * @default 1 */ falloff: number; /** * How fast pixels sort — runs more sorting passes per frame * * @default 0.1 */ strength: number; /** * How quickly sorted pixels melt back to their original position (0 = permanent) * * @default 0.1 */ decay: number; /** * Axis pixels are sorted along * * Accepts one of: `"horizontal"`, `"vertical"`. * @default "vertical" */ axis: string; /** * Sort order by brightness * * Accepts one of: `"ascending"`, `"descending"`. * @default "descending" */ direction: string; } /** * The kernel set at this effect's grid: the kit's odd-even transposition displacement sort * (luma-key prepass, brush-gated compare-swap pair, sorted-coordinate publish), with the * compile-time `axis`/`direction` baked in. Rebuilt per compose (cheap; recomposes on change). */ export declare const makePixelSortKernels: (vertical: boolean, direction: 1 | -1) => { lumaLayout: import('typegpu').TgpuBindGroupLayout<{ input: { texture: d.WgslTexture2d; }; lumaBuf: { storage: d.WgslArray; access: "mutable"; }; params: { uniform: d.WgslStruct<{ inputWidth: d.F32; inputHeight: d.F32; }>; }; }>; LumaParams: d.WgslStruct<{ inputWidth: d.F32; inputHeight: d.F32; }>; swapLayout: import('typegpu').TgpuBindGroupLayout<{ readBuf: { storage: d.WgslArray; access: "readonly"; }; writeBuf: { storage: d.WgslArray; access: "mutable"; }; lumaBuf: { storage: d.WgslArray; access: "readonly"; }; params: { uniform: d.WgslStruct<{ mouseX: d.F32; mouseY: d.F32; radius: d.F32; falloff: d.F32; decay: d.F32; aspect: d.F32; seed: d.F32; }>; }; }>; SwapParams: d.WgslStruct<{ mouseX: d.F32; mouseY: d.F32; radius: d.F32; falloff: d.F32; decay: d.F32; aspect: d.F32; seed: d.F32; }>; outputLayout: import('typegpu').TgpuBindGroupLayout<{ srcBuf: { storage: d.WgslArray; access: "readonly"; }; stateTex: { storageTexture: d.WgslStorageTexture2d<"rgba16float" | "rgba32float", string>; }; }>; key: import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>; swap0: import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>; swap1: import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>; output: import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>; }; export declare const componentDefinition: GpuShaderDefinition; export default componentDefinition; //# sourceMappingURL=index.d.ts.map