import { GpuShaderDefinition } from '../../gpu/porters'; import { transformColor } from '../../utilities/transformations'; export interface ComponentProps { /** * What sheds the trail — Motion trails whatever changes frame-to-frame (works on opaque images and video), Alpha trails the child * * Accepts one of: `"motion"`, `"alpha"`. * @default "motion" */ trailSource: string; /** * How much a pixel must change between frames to shed a trail (Motion source only) — lower catches subtle movement, higher only fast motion * * @default 0.06 */ motionThreshold: number; /** * How long the trail lingers, in seconds — the time constant of the fade (the star control) * * @default 0.6 */ trailLength: number; /** * How much the trail smears and softens as it fades — 0 keeps crisp ghost frames, higher melts them together * * @default 1 */ diffusion: number; /** * Sideways drift of the trail per second — smears the trail in a direction * * @default 0 */ driftX: number; /** * Vertical drift of the trail per second * * @default 0 */ driftY: number; /** * Per-frame zoom of the trail around the centre — above 1 pulls the trail into an outward tunnel, below 1 sucks it inward * * @default 1 */ zoom: number; /** * Overall strength of the trail behind the live frame * * @default 1 */ trailOpacity: number; /** * Colour the trail — Color tints it a single hue, Rainbow cycles hue as the trail ages * * Accepts one of: `"none"`, `"color"`, `"rainbow"`. * @default "none" */ tintMode: string; /** * Trail tint colour (used in Color mode) * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#33aaff" */ tint: Parameters[0]; /** * How the trail combines with the frame — Add / Screen build glowing light-painting trails, Multiply lays down dark ink ghosts, plus the full standard blend set * * Accepts one of: `"normal"`, `"add"`, `"screen"`, `"multiply"`, `"overlay"`, `"softLight"`, `"hardLight"`, `"darken"`, `"lighten"`, `"colorDodge"`, `"colorBurn"`, `"linearBurn"`, `"difference"`, `"exclusion"`, `"hue"`, `"saturation"`, `"color"`, `"luminosity"`. * @default "normal" */ trailBlend: string; /** * Simulation speed. 0 freezes the trail in place. * * Accepts a number between 0 and 4. * @default 1 */ speed: number; } /** The default variant (Motion source, untinted) — the shape the port gate resolves. */ export declare const timeTrailKernel: import('typegpu').TgpuFn<(cx: import('typegpu/data').U32, cy: import('typegpu/data').U32) => import('typegpu/data').Void>; export declare const componentDefinition: GpuShaderDefinition; export default componentDefinition; //# sourceMappingURL=index.d.ts.map