import { type Component } from "@pk-nerdsaver-ai/pi-tui";
import type { AgentSession } from "../../../session/agent-session";
import type { CollabStatus, EffectiveStatusLineSettings, StatusLineSettings } from "./types";
export declare class StatusLineComponent implements Component {
    #private;
    private session;
    constructor(session: AgentSession);
    /**
     * Re-point the status line at another session (focus proxy). Invalidate: model/context/usage all derive
     * from it. `focusedAgentId` is the focused subagent id while the view is proxied, undefined for main.
     */
    setSession(session: AgentSession, focusedAgentId?: string): void;
    updateSettings(settings: StatusLineSettings): void;
    getEffectiveSettingsForTest(): EffectiveStatusLineSettings;
    setAutoCompactEnabled(enabled: boolean): void;
    setSubagentCount(count: number): void;
    /** Active subagent count as currently displayed (collab state mirroring). */
    get subagentCount(): number;
    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;
    setCollabStatus(status: CollabStatus | null): void;
    setHookStatus(key: string, text: string | undefined): void;
    watchBranch(onBranchChange: () => void): void;
    dispose(): void;
    invalidate(): void;
    /**
     * Background-refresh the Anthropic OAuth quota report. Guarded by a 5-min
     * TTL on both success (cache lifetime) and error (backoff). Exposed
     * (non-private) so unit tests can verify the backoff invariant.
     */
    refreshUsageInBackground(): void;
    /**
     * Used-tokens / context-window totals for the status-line context% segment,
     * memoized so the per-event redraw stays O(1) when nothing changed.
     *
     * The numerator comes from `session.getContextUsage()`, which anchors on the
     * last assistant's real prompt-token count — so the bar matches the provider
     * and the `/context` panel — and reports `null` while that count is unknown
     * (right after compaction, before the next response). Exposed (non-private)
     * for unit tests and the collab host's state broadcast.
     */
    getCachedContextBreakdown(): {
        usedTokens: number;
        contextWindow: number;
    };
    getTopBorder(width: number): {
        content: string;
        width: number;
    };
    render(width: number): readonly string[];
}
