import { Response } from 'express';
import { ToolRunnerTree, UndoAcceptImagesResult } from './tool-runner';
import { HtmlReporterApi } from '../types';
import type Testplane from 'testplane';
import { GuiConfigs } from './index';
import { TestSpec } from './tool-runner/runner/runner';
import { TestBranch, TestEqualDiffsData, TestRefUpdateData } from '../tests-tree-builder/gui';
type AppArgs = [paths: string[], testplane: Testplane & HtmlReporterApi, configs: GuiConfigs];
export declare class App {
    private _toolRunner;
    private _browserConfigs;
    private _retryCache;
    static create<T extends App>(this: new (...args: AppArgs) => T, ...args: AppArgs): T;
    constructor(...[paths, testplane, configs]: AppArgs);
    get data(): ToolRunnerTree | null;
    initialize(): Promise<void>;
    finalize(): Promise<void>;
    run(tests: TestSpec[]): Promise<boolean>;
    private _runWithoutRetries;
    getTestsDataToUpdateRefs(imageIds?: string[]): TestRefUpdateData[];
    getImageDataToFindEqualDiffs(imageIds?: string[]): TestEqualDiffsData[];
    updateReferenceImage(failedTests?: TestRefUpdateData[]): Promise<TestBranch[]>;
    undoAcceptImages(imageIds: TestRefUpdateData[]): Promise<UndoAcceptImagesResult>;
    findEqualDiffs(data: TestEqualDiffsData[]): Promise<string[]>;
    addClient(connection: Response): void;
    private _disableRetries;
    private _restoreRetries;
}
export {};
