import { Expr } from '../gpu/contract'; import { Scalar } from './values'; /** Position within a repeating cycle, 0..1 (`fract(t / period)`). */ export declare function phase(t: Expr, period: Expr | number): Expr; /** * A repeating cycle: `progress` (0..1 within the cycle) and `index` (which cycle this * is) — the "every N seconds" word. Feed `index` to {@link cycleSeed} for something * random-but-stable per pass (a meteor's angle, a glitch's offset). */ export declare function cycle(t: Expr, period: Expr | number): { progress: Expr; index: Expr; }; /** A random-but-stable 0..1 value per cycle index (change `salt` for independent draws). */ export declare function cycleSeed(index: Expr, salt?: number): Expr; /** * An on/off rhythm: 1 for the first `duty` fraction of each cycle, 0 for the rest. * `soften` (cycle-fraction units) eases both edges; 0 is a hard blink. */ export declare function pulseTrain(t: Expr, opts: { period: Expr | number; duty: Expr | number; soften?: number; }): Expr; /** A sine sweep between `min` and `max` at `rate` cycles per second. */ export declare function oscillate(t: Expr, opts: { rate?: number; min?: Expr | number; max?: Expr | number; offset?: number; }): Expr; export declare const easeIn: (x: Expr) => Expr; export declare const easeOut: (x: Expr) => Expr; export declare const easeInOut: (x: Expr) => Expr; type SignalClock = 'global' | 'node'; /** {@link oscillate} as a slot signal. */ export declare function oscillating(opts: { rate?: number; min?: Expr | number; max?: Expr | number; offset?: number; clock?: SignalClock; }): Scalar; /** {@link pulseTrain} as a slot signal. */ export declare function pulsing(opts: { period: number; duty: number; soften?: number; clock?: SignalClock; }): Scalar; export {}; //# sourceMappingURL=motion.d.ts.map