export type Rgb = readonly [number, number, number];
export type WorkingKind = "idle" | "route" | "verify" | "loop" | "control" | "tool" | "shell" | "edit" | "test" | "model" | "stream" | "error";
export type WorkingState = {
    kind: WorkingKind;
    label: string;
    detail: string;
    startedAtMs: number;
};
export type WorkSignal = {
    activeToolCall?: {
        name: string;
        inputPreview?: string;
    } | null;
    activeShellCommand?: string | null;
    activeFileEdit?: string | null;
    activeTestCommand?: string | null;
    activeAgent?: {
        role?: string;
        task?: string;
    } | null;
    activeSlashCommand?: string | null;
    userIntent?: string | null;
    provider?: string | null;
    model?: string | null;
    route?: string | null;
    isStreaming?: boolean;
    error?: string | null;
};
export declare class WorkingTracker {
    private current;
    snapshot(): WorkingState;
    set(kind: WorkingKind, label: string, detail?: string): WorkingState;
    idle(detail?: string): WorkingState;
    route(detail: string): WorkingState;
    verify(detail: string): WorkingState;
    loop(detail: string): WorkingState;
    control(detail: string): WorkingState;
    tool(name: string, detail?: string): WorkingState;
    shell(command: string): WorkingState;
    edit(filePath: string): WorkingState;
    test(command: string): WorkingState;
    model(provider: string, model: string): WorkingState;
    stream(provider: string, model: string): WorkingState;
    error(message: string): WorkingState;
}
export declare function deriveWorkingState(signal: WorkSignal, previous?: WorkingState): WorkingState;
export declare function renderWorkingHud(args: {
    state: WorkingState;
    frame: number;
    width: number;
    nowMs?: number;
    compact?: boolean;
}): string;
export declare function renderSweepRule(width: number, frame: number): string;
export declare function renderSweepText(input: string, frame: number, options?: {
    baseColors?: readonly string[];
    sweepColors?: readonly string[];
    bandWidth?: number;
    speed?: number;
    bold?: boolean;
}): string;
