import { SpruceTestResults, TestRunnerStatus } from './test.types';
export default class TestReporter {
    private started;
    private table?;
    private bar;
    private bottomLayout;
    private testLog;
    private errorLog?;
    private errorLogItemGenerator;
    private lastResults;
    private updateInterval?;
    private menu;
    private statusBar;
    private window;
    private widgets;
    private selectTestPopup?;
    private topLayout;
    private filterInput;
    private filterPattern?;
    private clearFilterPatternButton;
    private isDebugging;
    private watchMode;
    private status;
    private countDownTimeInterval?;
    private cwd;
    private orientation;
    private handleStartStop?;
    private handleRestart?;
    private handleQuit?;
    private handleRerunTestFile?;
    private handleFilterChange?;
    private handleOpenTestFile?;
    private handleToggleDebug?;
    private handleToggleRpTraining?;
    private handletoggleStandardWatch?;
    private handleToggleSmartWatch?;
    private minWidth;
    private isRpTraining;
    private shouldStripCwdFromErrors;
    constructor(options?: TestReporterOptions);
    setFilterPattern(pattern: string | undefined): void;
    setIsDebugging(isDebugging: boolean): void;
    setIsRpTraining(isRpTraining: boolean): void;
    setRpTrainingStatus(status: 'off' | 'installing' | 'on'): void;
    startCountdownTimer(durationSec: number): void;
    stopCountdownTimer(): void;
    setWatchMode(watchMode: WatchMode): void;
    private setWatchLabel;
    private setLabelStatus;
    start(): Promise<void>;
    private handleWindowResize;
    private updateOrientation;
    private dropInMenu;
    setStatus(status: TestRunnerStatus): void;
    private updateMenuLabels;
    private handleMenuSelect;
    private handleUpdateInterval;
    private refreshResults;
    private handleGlobalKeypress;
    private dropInTestLog;
    private handleClickTestLog;
    showAlert(options: {
        title: string;
        message: string;
    }): Promise<void>;
    askForProjectName(defaultName: string): Promise<string | undefined>;
    private closeSelectTestPopup;
    private dropInSelectTestPopup;
    private openTestFile;
    getFileForLine(row: number): string | undefined;
    private dropInProgressBar;
    private dropInFilterControls;
    private dropInBottomLayout;
    private dropInStatusBar;
    private dropInTopLayout;
    updateResults(results: SpruceTestResults): void;
    private updateLogs;
    private resultsToLogContents;
    private dropInErrorLog;
    private destroyErrorLog;
    private updateProgressBar;
    private generateProgressStats;
    private generatePercentComplete;
    private generatePercentPassing;
    private getTotalTestFilesRun;
    render(): void;
    destroy(): Promise<void>;
    reset(): void;
    setStatusLabel(text: string): void;
    appendError(message: string): void;
}
interface TestReporterOptions {
    handleStartStop?: () => void;
    handleRestart?: () => void;
    handleQuit?: () => void;
    onRequestOpenTestFile?: () => void;
    handleRerunTestFile?: (fileName: string) => void;
    handleOpenTestFile?: (fileName: string) => void;
    handleFilterPatternChange?: (pattern?: string) => void;
    handleToggleDebug?: () => void;
    handletoggleStandardWatch?: () => void;
    handleToggleSmartWatch?: () => void;
    handleToggleRpTraining?: () => void;
    filterPattern?: string;
    isDebugging?: boolean;
    isRpTraining?: boolean;
    watchMode?: WatchMode;
    status?: TestRunnerStatus;
    cwd?: string;
}
export type TestReporterOrientation = 'landscape' | 'portrait';
export type WatchMode = 'off' | 'standard' | 'smart';
export {};
