import React from "react";
import type { ActivityPhase, RetryInfo } from "../hooks/useAgentLoop.js";
type ActivityAccentColors = {
    duration: string;
    tokens: string;
    thinking: string;
};
export declare function getActivityAccentColors(themeName: string): ActivityAccentColors;
export declare function buildMetaParts(elapsedMs: number, thinkingMs: number, isThinking: boolean, tokenEstimate: number): {
    prefix: string;
    thinking: string;
};
export declare function getThinkingShimmerColor(themeName: string): string;
/**
 * Dedicated hue for the "Working..." label shimmer. Deliberately distinct from
 * the spinner cycle (cool purples/blues), the token accent (violet), the
 * thinking shimmer (green), and the duration (gray) so the sweep reads as its
 * own signal — a warm amber/coral.
 */
export declare function getWorkingShimmerColor(themeName: string): string;
interface ActivityIndicatorProps {
    phase: ActivityPhase;
    elapsedMs: number;
    /** Run start time ref — for smooth elapsed time on each animation tick. */
    runStartRef?: React.RefObject<number>;
    thinkingMs: number;
    isThinking: boolean;
    thinkingEnabled?: boolean;
    tokenEstimate: number;
    /** Raw character count ref for smooth token animation (read every tick). */
    charCountRef?: React.RefObject<number>;
    /** Accumulated real tokens from completed turns. */
    realTokensAccumRef?: React.RefObject<number>;
    userMessage?: string;
    activeToolNames?: string[];
    retryInfo?: RetryInfo | null;
    planDone?: number;
    planTotal?: number;
    /**
     * Override the default phrase library per-phase. Pass any subset — phases
     * not provided fall back to ggcoder's contextual selectPhrases. gg-boss
     * uses this to swap in orchestration-themed phrases ("Coordinating workers"
     * vs "Cogitating") so the activity bar reads as a manager, not a coder.
     */
    phrases?: Partial<Record<ActivityPhase, string[]>>;
    /**
     * Override the spinner pulse-color cycle. Defaults to the cool blue/violet
     * cycle ggcoder uses; gg-boss passes its crimson→fuchsia palette so the
     * spinner reads as Boss, not Coder.
     */
    pulseColors?: readonly string[];
    /** Disable decorative per-tick animation so terminal scrollback remains usable. */
    staticDisplay?: boolean;
}
export declare function ActivityIndicator({ phase, elapsedMs: elapsedMsProp, runStartRef, thinkingMs, isThinking, tokenEstimate, charCountRef: charCountRefProp, realTokensAccumRef: realTokensAccumRefProp, retryInfo, planDone, planTotal, pulseColors: pulseColorsOverride, staticDisplay, }: ActivityIndicatorProps): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=ActivityIndicator.d.ts.map