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;
    /** Most recent activity timestamp from state.json (updatedAt) or file mtime fallback. */
    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;
    /** Show heap memory stats in system panel (default: true) */
    showHeap?: boolean;
    /** Show disk usage in system panel (default: true) */
    showDisk?: boolean;
    /** Show uptime in system panel (default: true) */
    showUptime?: boolean;
    /** System panel refresh interval in ms (default: 5000) */
    systemRefreshMs?: number;
}
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;
}): string;
export declare function renderHudColumns(mainPanels: string[], sidebar: string, terminalWidth?: number): string;
export declare function renderHudColumnsWithDetectedWidth(mainPanels: string[], sidebar: string): string;
export declare function selectLatestRunName(candidates: HudRunCandidate[]): string | null;
export declare function listRunCandidates(runsDir: string): Promise<HudRunCandidate[]>;
export declare function renderHudDashboard(options?: HudRenderOptions): Promise<string>;
export declare function hudCommand(options?: HudCommandOptions): Promise<void>;
