import type { AgentSession } from "@earendil-works/pi-coding-agent"; import type { Theme } from "../../theme.js"; import type { SessionActivity, StatusAgentPauseTarget, StatusCompactToolsTarget, StatusContextTarget, StatusDraftQueueTarget, StatusInternalClipboardTarget, StatusLineLayout, StatusModelTarget, StatusModelUsageTarget, StatusPromptEnhancerTarget, StatusQuickScrollTarget, StatusSessionTarget, StatusTerminalBellSoundTarget, StatusThinkingExpandTarget, StatusThinkingTarget, StatusUserJumpTarget, StatusVoiceLanguageTarget, StatusVoiceMicTarget } from "../types.js"; import type { ScreenStyler } from "../screen/screen-styler.js"; import { type ModelColorsConfig } from "../../config.js"; export type StatusLineRendererHost = { readonly theme: Theme; readonly screenStyler: ScreenStyler; readonly session: AgentSession | undefined; draftModelStatus?(): { modelLabel: string; thinkingLabel: string; } | undefined; readonly modelColors?: ModelColorsConfig; readonly sessionActivity: SessionActivity; readonly statusDotBright: boolean; currentStatus(): string; statusWorkspaceLabel(): string; statusWorkspaceGitBranchLabel(): string | undefined; statusModelLabel(session: AgentSession): string; statusThinkingLabel(session: AgentSession): string; formatContextUsagePercent(session: AgentSession): string; roundedContextUsagePercent(session: AgentSession): number | undefined; contextUsagePercentColor(percent: number): string; modelUsageStatusLabel(): string; promptEnhancerStatusWidgetText(): string; promptEnhancerStatusWidgetActive(): boolean; promptEnhancerStatusWidgetEnabled(): boolean; terminalBellSoundStatusWidgetText(): string; terminalBellSoundStatusWidgetEnabled(): boolean; agentPauseStatusWidgetText?(): string; agentPauseStatusWidgetActive?(): boolean; voiceStatusWidgetText(): string; voiceStatusWidgetActive(): boolean; conversationQuickScrollDirections?(): { up: boolean; down: boolean; }; queueableInputActive?(): boolean; internalClipboardActive?(): boolean; userMessageJumpMenuActive?(): boolean; allThinkingExpandedActive?(): boolean; superCompactToolsActive?(): boolean; }; export declare class StatusLineRenderer { private readonly host; constructor(host: StatusLineRendererHost); layout(width: number): StatusLineLayout; inputBorderWidgetsLayout(width: number): StatusLineLayout | undefined; render(row: number, layout: StatusLineLayout, width: number): string; renderInputBorderWidgets(row: number, layout: StatusLineLayout, borderText: string, width: number): string; private inputBorderWidgetSegments; modelTarget(statusText: string, row: number): StatusModelTarget | undefined; thinkingTarget(statusText: string, row: number): StatusThinkingTarget | undefined; contextTarget(statusText: string, row: number, layout: StatusLineLayout): StatusContextTarget | undefined; modelUsageTarget(statusText: string, row: number, layout: StatusLineLayout): StatusModelUsageTarget | undefined; promptEnhancerTarget(layout: StatusLineLayout, row: number): StatusPromptEnhancerTarget | undefined; agentPauseTarget(layout: StatusLineLayout, row: number): StatusAgentPauseTarget | undefined; voiceMicTarget(layout: StatusLineLayout, row: number): StatusVoiceMicTarget | undefined; voiceLanguageTarget(layout: StatusLineLayout, row: number): StatusVoiceLanguageTarget | undefined; userJumpTarget(layout: StatusLineLayout, row: number): StatusUserJumpTarget | undefined; draftQueueTarget(layout: StatusLineLayout, row: number): StatusDraftQueueTarget | undefined; internalClipboardTarget(layout: StatusLineLayout, row: number): StatusInternalClipboardTarget | undefined; thinkingExpandTarget(layout: StatusLineLayout, row: number): StatusThinkingExpandTarget | undefined; compactToolsTarget(layout: StatusLineLayout, row: number): StatusCompactToolsTarget | undefined; quickScrollUpTarget(layout: StatusLineLayout, row: number): StatusQuickScrollTarget | undefined; quickScrollDownTarget(layout: StatusLineLayout, row: number): StatusQuickScrollTarget | undefined; terminalBellSoundTarget(layout: StatusLineLayout, row: number): StatusTerminalBellSoundTarget | undefined; sessionTarget(statusText: string, row: number, label: string, workspaceLabel: string): StatusSessionTarget | undefined; private segments; private fitWorkspaceLabel; private pushStatusWidgetSegments; private draftQueueWidgetText; private pushWorkspaceSegments; private pushModelUsageSegments; private pushResetDurationSegments; private modelUsageHasWarning; private modelUsageResetLength; private pushSegment; private pushContextBarSegments; private modelUsageProgressColor; private modelProviderColor; private modelRefColor; private thinkingLevelColor; private statusThinkingDisplayLabel; private availableThinkingLevels; private contextBarLabel; private widgetLayout; private iconButtonText; private voiceBorderWidgetText; private voiceWidgetLayout; private voiceBorderWidgetParts; private statusDotColor; } export declare function thinkingLevelThemeColor(label: string, colors: Theme["colors"], availableLevels?: readonly string[]): string; export declare function modelProviderThemeColor(provider: string, colors: Theme["colors"]): string;