import { type ProviderUsageStats } from "../util/provider-usage.js";
import type { RunState } from "../contracts/orchestration.js";
import { type RunViewModel } from "../util/run-view-model.js";
import { type TodoItem } from "../util/todo-sync.js";
export interface HudGitChange {
    status: string;
    path: string;
}
export interface HudRunCandidate {
    name: string;
    mtimeMs: number;
    stateUpdatedAtMs: number;
    hasState: boolean;
    hasGoal: boolean;
    hasPlan: boolean;
    schemaVersion?: number;
}
export type HudSection = "run" | "project" | "resources";
export interface HudRenderOptions {
    runId?: string;
    terminalWidth?: number;
    providerUsage?: ProviderUsageStats;
    footerRefreshMs?: number;
    compact?: boolean;
    section?: HudSection;
    fetchQuota?: boolean;
    showHeap?: boolean;
    showDisk?: boolean;
    showUptime?: boolean;
    systemRefreshMs?: number;
    thinking?: import("./types.js").HudThinkingEntry[];
    /** Current working phase for gradient-animated status line */
    workingPhase?: import("../theme/working-indicator.js").WorkingPhase | null;
    /** Spinner animation type (defaults to "braille") */
    workingSpinner?: import("../theme/working-indicator.js").WorkingSpinner;
}
export interface HudCommandOptions extends HudRenderOptions {
    watch?: boolean;
    refreshMs?: number;
    clear?: boolean;
    noClear?: boolean;
    alternateScreen?: boolean;
}
export declare function parseGitStatusPorcelain(output: string): HudGitChange[];
export declare function buildHudSidebar(state: RunState | null, changes: HudGitChange[], options?: {
    maxTodos?: number;
    maxFiles?: number;
    viewModel?: RunViewModel;
    maxWidth?: number;
    todos?: TodoItem[] | null;
    thinking?: import("./types.js").HudThinkingEntry[];
}): string;
export declare function renderHudColumns(mainPanels: string[], sidebar: string, terminalWidth?: number): string;
export declare function renderHudColumnsWithDetectedWidth(mainPanels: string[], sidebar: string): string;
export declare function normalizeRefreshMs(refreshMs: number | undefined): number;
export declare function sleep(ms: number): Promise<void>;
export declare function clearScreen(): void;
export declare function enterAlternateScreen(): void;
export declare function leaveAlternateScreen(): void;
export declare function selectLatestRunName(candidates: HudRunCandidate[]): string | null;
export declare function listRunCandidates(runsDir: string): Promise<HudRunCandidate[]>;
export declare function renderHudDashboard(options?: HudRenderOptions): Promise<string>;
