/// <reference types="node" />
import { ResponseType } from "./enums";
import { URL } from "url";
import { iSuite, iScenario, SuiteStatusCallback, SuiteCallback, ScenarioCallback } from "./interfaces";
import { BrowserOptions } from "./httprequest";
import { FlagpoleExecution } from "./flagpoleexecution";
import { SuiteTaskManager } from "./suitetaskmanager";
export declare class Suite implements iSuite {
    get baseUrl(): URL | null;
    get failCount(): number;
    get waitingToExecuteCount(): number;
    get executingCount(): number;
    get hasPassed(): boolean;
    get hasFailed(): boolean;
    get hasExecuted(): boolean;
    get hasFinished(): boolean;
    get totalDuration(): number | null;
    get executionDuration(): number | null;
    get title(): string;
    get finished(): Promise<void>;
    get executionOptions(): FlagpoleExecution;
    get scenarios(): iScenario[];
    protected _title: string;
    protected _baseUrl: URL | null;
    protected _waitToExecute: boolean;
    protected _verifySslCert: boolean;
    protected _taskManager: SuiteTaskManager;
    constructor(title: string);
    subscribe(callback: SuiteStatusCallback): iSuite;
    verifyCert: (verify: boolean) => Suite;
    verifySslCert(verify: boolean): Suite;
    wait(bool?: boolean): Suite;
    setConcurrencyLimit(maxExecutions: number): iSuite;
    print(exitAfterPrint?: boolean): void;
    scenario(title: string, type?: ResponseType, opts?: BrowserOptions): iScenario;
    json(title: string): iScenario;
    image(title: string): iScenario;
    video(title: string): iScenario;
    html(title: string): iScenario;
    stylesheet(title: string): iScenario;
    script(title: string): iScenario;
    resource(title: string): iScenario;
    browser(title: string, opts?: BrowserOptions): iScenario;
    extjs(title: string, opts?: BrowserOptions): iScenario;
    base(url: string): Suite;
    base(basePathsByEnvironment: {}): Suite;
    base(callback: SuiteCallback): Suite;
    execute(): Suite;
    beforeAll(callback: SuiteCallback, prepend?: boolean): Suite;
    beforeEach(callback: ScenarioCallback, prepend?: boolean): Suite;
    afterEach(callback: ScenarioCallback, prepend?: boolean): Suite;
    afterAll(callback: SuiteCallback, prepend?: boolean): Suite;
    success(callback: SuiteCallback, prepend?: boolean): Suite;
    failure(callback: SuiteCallback, prepend?: boolean): Suite;
    finally(callback: SuiteCallback, prepend?: boolean): Suite;
    promise(): Promise<iSuite>;
}
