import { type Component } from "@oh-my-pi/pi-tui"; import type { StatusLinePreset, StatusLineSegmentId, StatusLineSeparatorStyle } from "../../config/settings-schema"; import type { AgentSession } from "../../session/agent-session"; export interface StatusLineSegmentOptions { model?: { showThinkingLevel?: boolean; }; path?: { abbreviate?: boolean; maxLength?: number; stripWorkPrefix?: boolean; }; git?: { showBranch?: boolean; showStaged?: boolean; showUnstaged?: boolean; showUntracked?: boolean; }; time?: { format?: "12h" | "24h"; showSeconds?: boolean; }; } export interface StatusLineSettings { preset?: StatusLinePreset; leftSegments?: StatusLineSegmentId[]; rightSegments?: StatusLineSegmentId[]; separator?: StatusLineSeparatorStyle; segmentOptions?: StatusLineSegmentOptions; showHookStatus?: boolean; sessionAccent?: boolean; } export declare class StatusLineComponent implements Component { #private; private readonly session; constructor(session: AgentSession); updateSettings(settings: StatusLineSettings): void; setAutoCompactEnabled(enabled: boolean): void; setSubagentCount(count: number): void; setSessionStartTime(time: number): void; setPlanModeStatus(status: { enabled: boolean; paused: boolean; } | undefined): void; setLoopModeStatus(status: { enabled: boolean; } | undefined): void; setGoalModeStatus(status: { enabled: boolean; paused: boolean; } | undefined): void; setHookStatus(key: string, text: string | undefined): void; watchBranch(onBranchChange: () => void): void; dispose(): void; invalidate(): void; getTopBorder(width: number): { content: string; width: number; }; render(width: number): string[]; }