import type { AbortSignal } from 'abort-controller';
import type { TestSystemInfo, ScreenplayPage } from './interfaces';
import { StartTestParams } from './attachInterfaces';
import { Page as PuppeteerPage } from 'puppeteer';
import { Page as PlaywrightPage, ChromiumBrowserContext, BrowserContext } from 'playwright';
export declare function testResultDirFromStartParams(startParams: StartTestParams): string;
export declare function constructTestInvocationResultDir(projectRoot: string, runId: string): string;
export declare function constructTestResultDir(projectRoot: string, runId: string, testId: string): string;
export declare function constructScreenplayResultDir(projectRoot: string): string;
export declare function testUniqueIdentifierFromStartParams(startParams: {
    projectRoot: string;
    fullSuitePath: string;
    fullName: string;
}): string;
export declare function isNotPlaywrightPage(page: ScreenplayPage): page is PuppeteerPage;
export declare function isPlaywrightChromiumBrowserContext(context: BrowserContext): context is ChromiumBrowserContext;
export declare function getSystemInfoForPage(page: ScreenplayPage): Promise<TestSystemInfo>;
export declare function getSystemInfoForPlaywrightPage(page: PlaywrightPage): Promise<TestSystemInfo>;
export declare function getSystemInfoForPlaywrightChromiumPage(page: PlaywrightPage, context: ChromiumBrowserContext): Promise<TestSystemInfo>;
export declare function getSystemInfoForPuppeteerPage(page: PuppeteerPage): Promise<TestSystemInfo>;
export declare function guessOperatingSystemUserAgent(): {
    name: string;
    version: string;
};
export declare function assertNotNullOrUndefined<T>(value: T): asserts value is Exclude<T, undefined | null | void>;
export declare function sleep(time: number, abortSignal?: AbortSignal): Promise<void>;
export declare class AbortError extends Error {
    name: 'AbortError';
}
export declare function isAbortError(maybeAbortError: unknown): maybeAbortError is AbortError;
export declare function jsonRemoveNoiseReviver(key: string, value: any): any;
export declare function jsonReduceNoiseReviver(key: string, value: any): any;
export declare function removeStringFromString(strToRemove: string, strToRemoveFrom: string): string;
export declare function readJsonTestSnapshotFile(filePath: string): Promise<any>;
export declare function removeStringFromStringAndParse(strToRemove: string, strToRemoveFrom: string, reviver?: ((this: any, key: string, value: any) => any) | undefined): any;
export declare function arrayFlat<T>(arr: T[][]): T[];
