/** * Custom Spinner with Shimmer Effect, Timer, and Token Tracking * Inspired by Claude Code's loading experience */ export interface ShimmerSpinnerOptions { /** Enable shimmer effect (default: true) */ shimmer?: boolean; /** Show elapsed time (default: true) */ showTimer?: boolean; /** Show token usage (default: false) */ showTokens?: boolean; /** Spinner style (default: 'shimmer') */ style?: 'shimmer' | 'braille' | 'dots'; } export interface TokenUsage { inputTokens: number; outputTokens: number; totalTokens: number; } /** * Custom spinner with shimmer effect, timer, and token tracking */ export declare class ShimmerSpinner { private message; private isRunning; private intervalId; private frameIndex; private startTime; private tokens; private options; private frames; constructor(options?: ShimmerSpinnerOptions); /** * Start the spinner with a message */ start(message: string): void; /** * Update the spinner message */ update(message: string): void; /** * Update token usage (adds to existing) */ updateTokens(usage: TokenUsage): void; /** * Set token usage directly */ setTokens(usage: TokenUsage): void; /** * Render the spinner */ private render; /** * Stop the spinner with a final message */ stop(finalMessage?: string): void; /** * Stop with error */ fail(message?: string): void; /** * Get elapsed time in milliseconds */ getElapsed(): number; /** * Get current token usage */ getTokens(): TokenUsage; } /** * Create a shimmer spinner instance */ export declare function createShimmerSpinner(options?: ShimmerSpinnerOptions): ShimmerSpinner;