import { StepResult, ConsoleMessage, ConsoleException } from '@testim/root-cause-types';
import { ActiveFeatures } from './attachInterfaces';
export interface TestContextInterface {
    consoleEntries: ConsoleMessage[];
    unhandledExceptions: ConsoleException[];
    testArtifactsFolder: string;
    testFilePath: string;
    featuresSettings: ActiveFeatures;
    dateConstructor: typeof Date;
    stepStarted(): StepResult;
    stepEnded(stepResult: StepResult): Promise<void>;
    testEnded(): Promise<void>;
    addTestMetadata(metadata: any): void;
    addAssertionStep(partialStep: Pick<StepResult, Exclude<keyof StepResult, 'index' | 'startTimestamp'>>): void;
}
export declare class TestContext implements TestContextInterface {
    testArtifactsFolder: string;
    private testName;
    private testFullName;
    testFilePath: string;
    featuresSettings: ActiveFeatures;
    dateConstructor: typeof Date;
    private stepIndex;
    private stepResults;
    private testMetadata;
    private _currentStep?;
    consoleEntries: ConsoleMessage[];
    unhandledExceptions: ConsoleException[];
    constructor(testArtifactsFolder: string, testName: string, testFullName: string, testFilePath: string, featuresSettings: ActiveFeatures, dateConstructor?: typeof Date);
    stepStarted(): StepResult;
    getStepIndex(): number;
    stepEnded(stepResult: StepResult): Promise<void>;
    testEnded(): Promise<void>;
    addTestMetadata(metadata: Record<string | number, any>): void;
    addAssertionStep(partialStep: Pick<StepResult, Exclude<keyof StepResult, 'index' | 'startTimestamp'>>): void;
    private persistResults;
    private getResultsForPersistency;
}
