export declare const HUE_WHEEL: string[]; export declare const BREATHE_FRAMES: string[]; export declare const DOTS_FRAMES: string[]; export declare const ANIMATION_STYLES: readonly ['rainbow', 'wave', 'pulse', 'dots', 'breathe', 'static']; export type AnimationStyle = (typeof ANIMATION_STYLES)[number]; export declare const DEFAULT_ANIMATION_STYLE: AnimationStyle; export declare const ANIMATION_STYLE_DESCS: Record; /** * Seconds the user must be idle on the same style before `cycle` advances * to the next one. Picked to feel like a "shuffle" rather than a flicker. */ export declare const CYCLE_INTERVAL_SECONDS = 12; /** * Milliseconds between each cycle tick. Picked so the cycle timer doesn't * drive unnecessary re-renders for idle sessions (the StatusBar pauses the * timer when state is idle/aborting). */ export declare const CYCLE_TICK_INTERVAL_MS = 1000; /** * Milliseconds between each color-animation tick for rainbow/wave/pulse. * The 1-second spinner cadence (SPINNER_INTERVAL_MS) is too slow for a * visible traveling gradient — 120ms gives ~8 updates/second, so the * rainbow moves ~1 palette stop per 0.5s and completes a full 12-stop * cycle in ~6s. Derive with `Math.floor(elapsedMs / COLOR_TICK_MS)`. * * Pure for testing. */ export declare const COLOR_TICK_MS = 120; /** * Derive a fast color-animation frame from wall-clock elapsed milliseconds. * Callers pass `animationTime` (from Ink's `useAnimation`) and get a * monotonically increasing phase suitable for rainbow/wave/pulse, while * keeping the spinner-phase for dots/breathe at the original 1s cadence. */ export declare function colorPhaseFromTime(elapsedMs: number): number; /** * Cycle through every other `AnimationStyle` in order, returning to the * start once the list is exhausted. `rainbow` is excluded from the cycle * (it's the default/canonical look); cycle goes through the five variant * styles only. */ export declare const CYCLE_ORDER: readonly AnimationStyle[]; /** * Map a coarse `tick` (seconds elapsed since the cycle started) onto the * currently-active style. Returns the style at the cycle index derived from * `floor(tick / CYCLE_INTERVAL_SECONDS)`. * * Pure + exported for testing. */ export declare function styleForCycleTick(tick: number): AnimationStyle; /** Mix two `#rrggbb` colors by `t ∈ [0,1]`. Pure. */ export declare function mixHex(a: string, b: string, t: number): string; /** * Pick a colour for the given glyph index + phase under the `wave` style — * interpolates from `DIM` to `ACCENT` along a sinusoidal band so the bright * spot glides smoothly across the text. Pure for testing. */ export declare function waveColor(charIndex: number, phase: number, length: number): string; /** * Pick a colour for the whole text under the `pulse` style — single color * modulated by an oscillator so the whole chip dims/brightens together. * Pure for testing. */ export declare function pulseColor(phase: number): string; /** * Pick a Catppuccin colour for glyph `charIndex` at animation `phase`. * * The palette coordinate is `charIndex - phase / 4`, making the complete * gradient translate from the left edge to the right edge instead of * oscillating or choosing colours independently. Fractional coordinates are * blended between neighbouring Catppuccin stops to keep every frame smooth. * * Pure for testing. */ export declare function rainbowColor(charIndex: number, phase: number): string; /** Strip trailing `.`, `…`, etc. so the `dots` style doesn't double up on * the user-supplied label. */ export declare function stripTrailingDots(text: string): string; //# sourceMappingURL=animation-style.d.ts.map