import type { WorkspaceEntry } from "@stigmer/protos/ai/stigmer/agentic/session/v1/workspace_pb";
/** Props for {@link SetupProgress}. */
export interface SetupProgressProps {
    /**
     * Workspace entries from the session spec. When git-sourced entries
     * are present, the fallback indicator shows workspace-specific messaging
     * (e.g. "Setting up workspace...").
     */
    readonly workspaceEntries?: readonly WorkspaceEntry[];
    /**
     * Server-reported setup phase label from
     * `AgentExecutionStatus.setup_progress.current_phase`.
     *
     * When non-empty, rendered directly — the timer-based fallback is
     * bypassed.  When absent or empty (older backends that don't emit
     * setup progress), the component falls back to the time-based
     * step sequence derived from `workspaceEntries`.
     */
    readonly serverPhase?: string;
    /**
     * When `true`, the execution has moved past `PENDING` into
     * `IN_PROGRESS` but the agent has not yet produced any AI messages.
     * Renders a static "Thinking\u2026" label instead of the setup
     * phase sequence or server-reported phase.
     */
    readonly isAwaitingResponse?: boolean;
    /** Additional CSS class names for the root container. */
    readonly className?: string;
}
/**
 * Animated inline indicator shown in the message thread while an
 * execution has not yet produced AI messages.
 *
 * Operates in three modes (highest-priority first):
 *
 * 1. **Awaiting response** — `isAwaitingResponse` is `true`. The
 *    execution has moved past `PENDING` into `IN_PROGRESS` but no AI
 *    messages have arrived yet. Shows a static "Thinking\u2026" label.
 *
 * 2. **Server-driven** — `serverPhase` is non-empty. Renders the
 *    server-reported `setup_progress.current_phase` label directly.
 *
 * 3. **Timer-based fallback** — neither of the above. Cycles through
 *    contextual status messages derived from `workspaceEntries`.
 *
 * All visual properties flow through `--stgm-*` tokens.
 *
 * @example
 * ```tsx
 * // Awaiting response (IN_PROGRESS, no messages yet)
 * <SetupProgress isAwaitingResponse />
 *
 * // Server-driven (preferred during PENDING)
 * <SetupProgress serverPhase={execution.status?.setupProgress?.currentPhase} />
 *
 * // Timer fallback (PENDING, no server phase available)
 * <SetupProgress workspaceEntries={session.spec?.workspaceEntries} />
 * ```
 */
export declare const SetupProgress: import("react").NamedExoticComponent<SetupProgressProps>;
//# sourceMappingURL=SetupProgress.d.ts.map