import { BadgeProps } from '../Badge'; /** * Canonical lifecycle state surface accepted by {@link StatusTag}. * * The names are deliberately broad so domain types can map onto them: * - SessionState `"starting"` → `"preparing"` * - SessionState `"running"` (healthy) → `"running"` * - SessionState `"idle"` → `"idle"` * - SessionState `"busy"` → `"busy"` * - SessionState `"stopping"` → `"stopping"` * - SessionState `"terminated"` → `"terminated"` * - SessionState `"error"` → `"error"` */ export type StatusKind = "running" | "preparing" | "idle" | "busy" | "stopping" | "terminated" | "error"; export interface StatusTagProps { /** Canonical lifecycle state. Drives color and indicator behavior. */ state: StatusKind; /** Display label. Callers are responsible for i18n at the call site. */ label: string; /** Override the underlying Badge size. Defaults to `"small"`. */ size?: BadgeProps["size"]; /** * When `true`, render a small pulsing dot before the label to * communicate that the state is in motion. Defaults to a sensible * choice based on `state` (transient states pulse, terminal ones * don't). */ pulse?: boolean; /** Extra class names appended to the root span. */ className?: string; } declare function StatusTagComponent({ state, label, size, pulse, className, }: StatusTagProps): import("react").JSX.Element; /** * Memoized to avoid re-rendering rows that didn't change. The component * is a pure function of its props. */ export declare const StatusTag: import('react').MemoExoticComponent; export default StatusTag;