import type React from 'react'; import { type AnimationStyle } from './animation-style.js'; export interface ComposerActivityIconProps { status: ComposerStatus; /** Glyph shown when the agent is idle (the flat brand mark). */ idleGlyph: string; /** Recolours the resting/pulsing glyph to the error tone while aborting. */ disabled: boolean; } /** * Isolated, self-animating activity glyph for the composer top rail. Idle → * flat brand glyph (inherits the rail's brand colour); busy → a size-and-colour * pulse. Always exactly one column wide so the rail geometry never shifts. */ export declare function ComposerActivityIcon({ status, idleGlyph, disabled, }: ComposerActivityIconProps): React.ReactElement; /** * Composer status descriptor. Distinct from the raw runtime status so the * chip's render (and its reserved width) is driven by one small, testable * value instead of scattered flags. */ export type ComposerStatus = { kind: 'idle'; fleetRunning: number; } | { kind: 'working'; word: string; } | { kind: 'aborting'; } | { kind: 'confirm'; } | { kind: 'queued'; count: number; }; /** * Build the composer status descriptor from the raw runtime state. Priority * mirrors the old `composerStatusLabel`: an open confirm panel and an in-flight * abort outrank the working/queued/idle states. */ export declare function composerStatusFromState(opts: { status: 'idle' | 'running' | 'streaming' | 'aborting'; confirmCount: number; queueCount: number; thinkingWord: string; fleetRunning: number; }): ComposerStatus; /** * Stable column width the chip occupies for a given status — independent of the * live animation frame so the border geometry never shifts. For `working` we * reserve `spinner + space + word + '...'` (the `dots` style's widest frame is * three dots; the `…` used by other styles is narrower), i.e. `w(word) + 5`. * Pure + exported for testing. */ export declare function composerStatusReservedWidth(status: ComposerStatus): number; export interface ComposerStatusChipProps { status: ComposerStatus; /** Animation style for the working state (`'cycle'` rotates the variants). */ animationStyle: AnimationStyle | 'cycle'; /** Fixed slot width — the chip pads its output to exactly this many columns. */ reservedWidth: number; } /** * Isolated, self-animating composer status chip. Uses Ink's shared animation * scheduler so animation re-renders never propagate into . Renders * flat text for idle/confirm/aborting/queued and an animated working word. */ export declare function ComposerStatusChip({ status, animationStyle, reservedWidth, }: ComposerStatusChipProps): React.ReactElement; //# sourceMappingURL=composer-status-chip.d.ts.map