import { iSuiteOpts, iScenarioOpts, SuiteConfig } from "../flagpoleconfig";
declare type SpinnerResponse = {
    updateMessage: (updatedMessage: string) => void;
    stop: () => void;
};
export declare class Cli {
    private static _singleton;
    static createSingleton(): Cli;
    static get instance(): Cli;
    static fatalError(message: string, exitCode?: number): void;
    static subheader(message: string): Cli;
    static log(...messages: string[]): Cli;
    static list(...messages: string[] | string[][]): Cli;
    static exit(exitCode: number): void;
    private constructor();
    private _consoleLog;
    private stripLineBreaks;
    subheader(heading: string): Cli;
    log(...messages: string[]): Cli;
    list(...messages: string[] | string[][]): Cli;
    exit(exitCode: number): void;
    spinner(message: string, states?: string[]): SpinnerResponse;
}
export declare const addSuite: (suite: iSuiteOpts, scenario: iScenarioOpts) => Promise<iSuiteOpts>;
export declare const addScenario: (suite: SuiteConfig, opts: iScenarioOpts) => Promise<void>;
export {};
