import { Animated } from "react-native"; export type Energy = "calm" | "default" | "energetic"; export interface BackdropClock { /** Master 0..1 ramp over the flight period. Layers derive staggered sawtooth * phases from it, so every layer stays locked to one timeline. */ flight: Animated.Value; /** Shimmer, 0..1..0. Pulse, breathe, anything that swells and settles as one. */ twinkle: Animated.Value; /** Scintillation ramp, a linear 0..1 SAWTOOTH at the flare period. The sawtooth * is the point: it can be phase-shifted per body (see the renderer's buckets) * so flares land at unrelated moments across the field, which a ping-pong * cannot do without a discontinuity at the turn. */ scintillate: Animated.Value; /** Very slow 0..1 ramp (180s). Rotation, hue drift, anything near-static. */ drift: Animated.Value; /** Medium 0..1..0 breath (11s). Scale and opacity swells. */ breath: Animated.Value; /** Rare event cycle: parked, then a sweep. Comets, meteors, flashes. */ event: Animated.Value; } /** Read a clock without retaining it (renderers bind interpolations to these). */ export declare function backdropClock(energy: Energy): BackdropClock; /** Bind a Backdrop to its clock. Idempotent per mode; refcounted per energy. */ export declare function retainBackdropClock(energy: Energy, want: "running" | "poster"): void; /** Release a Backdrop; the last release stops every timer for that energy, * capturing the flight phase for the next retain. */ export declare function releaseBackdropClock(energy: Energy): void; /** Test seam: drop every clock so a suite starts from a known state. */ export declare function resetBackdropClocks(): void; //# sourceMappingURL=backdrop-clock.d.ts.map