///
import { SuiteConfig } from "./config";
import { FlagpoleExecutionOptions } from "../flagpoleexecutionoptions";
export declare enum SuiteExecutionExitCode {
success = 0,
failure = 1
}
export declare class SuiteExecutionResult {
get output(): string[];
get exitCode(): number;
protected _output: string[];
protected _exitCode: number;
constructor(output: string[], exitCode: number);
toString(): string;
}
export declare class SuiteExecution {
protected _result: SuiteExecutionResult | null;
protected _started: number | null;
protected _finished: number | null;
protected _subscribers: Function[];
protected _finally: Function[];
protected _output: string[];
protected _finishedPromise: Promise;
protected _finishedResolver: Function;
get result(): Promise;
get exitCode(): number | null;
get output(): string[];
static executePath(filePath: string, opts: FlagpoleExecutionOptions): SuiteExecution;
static executeSuite(config: SuiteConfig): SuiteExecution;
constructor();
subscribe(callback: (output: string, execution: SuiteExecution) => void): void;
finally(callback: (execution: SuiteExecution) => void): void;
toString(): string;
executePath(filePath: string, opts: FlagpoleExecutionOptions): Promise;
executeSuite(config: SuiteConfig): Promise;
protected _execute(filePath: string, opts: FlagpoleExecutionOptions): Promise;
private _executeWithExec;
private _executeWithSpawn;
private _executeWithFork;
protected _logLine(data: string | Buffer): void;
}
export declare class SuiteExecutionInline extends SuiteExecution {
static executePath(filePath: string, opts: FlagpoleExecutionOptions): SuiteExecutionInline;
static executeSuite(config: SuiteConfig): SuiteExecutionInline;
protected _execute(filePath: string, opts: FlagpoleExecutionOptions): Promise;
}