import type { Config } from '../config/schema.js';
import type { WorkflowStep } from './workflow.js';
export type PRPhase = 'queued' | 'reviewing' | 'reviewed' | 'fixing' | 'fixed' | 'rechecking' | 'rechecked';
export interface PRUpdate {
    label?: string;
    prLoc?: number;
    phase?: PRPhase;
    verdict?: string | null;
    commentCount?: number;
    fixCount?: number;
    recheckVerdict?: string | null;
    crTokens?: number;
    recheckTokens?: number;
    fixTokens?: number;
    round?: number;
    crReviewer?: string;
    recheckReviewer?: string;
    qualityTier?: string;
}
export interface PRCompletionData {
    elapsedMs: number;
    url: string;
}
export declare function fmtTime(d?: Date): string;
export declare const FMT_TIME_WIDTH = 11;
export declare function fmtTokens(n?: number): string;
export declare class PRBoard {
    private slots;
    private frameIdx;
    private timer;
    private liveLines;
    private liveContent;
    private readonly isTTY;
    private connLog;
    private stats;
    private tunnel;
    private config;
    private steps;
    private theme;
    setConfig(config: Config, steps: WorkflowStep[]): void;
    setTunnel(type: string, url: string | null, alive: boolean): void;
    start(): void;
    stop(): void;
    addPR(key: string, prNumber: number, repo: string, branch: string, round?: number): void;
    updatePR(key: string, updates: PRUpdate): void;
    completePR(key: string, data: PRCompletionData): void;
    failPR(key: string, error: string): void;
    /** Print 1–2 static lines to scrollback (above the live block). */
    log(line1: string, line2?: string): void;
    /** Record a connectivity event in the live section (tunnel/webhook events). */
    logConnectivity(line: string): void;
    private printStatic;
    private countRenderedLines;
    private eraseLive;
    private writeLive;
    private verdictBadge;
    private crFillFn;
    private crLabelFn;
    private uptime;
    private statsRow;
    private renderPRSlot;
    private phaseLine1Label;
    private renderCRSection;
    private renderFixSection;
    private renderRecheckSection;
    private render;
    private renderConfigPanel;
    private renderStatsPanel;
    private renderPRWorkspace;
    private renderPRSlotFolded;
    private evictOverflow;
    private redraw;
}
//# sourceMappingURL=board.d.ts.map