import { BaseTestsTreeBuilder, Tree, TreeImage, TreeTestResult } from './base';
import { TestStatus } from '../constants';
import { ImageFile } from '../types';
interface SuiteBranch {
    id: string;
    status?: TestStatus;
}
export interface TestBranch {
    result: TreeTestResult;
    images: TreeImage[];
    suites: SuiteBranch[];
}
export interface TestRefUpdateData {
    browserId: string;
    error?: TreeTestResult['error'];
    suite: {
        path: string[];
    };
    state: {
        name: string;
    };
    metaInfo: TreeTestResult['metaInfo'];
    imagesInfo: {
        stateName: string;
        actualImg: ImageFile;
        status: TestStatus;
    }[];
    attempt: number;
}
export type TestEqualDiffsData = TreeImage & {
    browserName: string;
};
interface TestUndoRefUpdateData {
    imageId: string;
    status: TestStatus;
    timestamp: number;
    previousImage: TreeImage | null;
    previousImageId: string | null;
    shouldRemoveResult: boolean;
}
export declare class GuiTestsTreeBuilder extends BaseTestsTreeBuilder {
    getImagesInfo(testId: string): TreeImage[];
    getTestBranch(id: string): TestBranch;
    getTestsDataToUpdateRefs(imageIds: string[]): TestRefUpdateData[];
    getImageDataToFindEqualDiffs(imageIds: string[]): TestEqualDiffsData[];
    getResultDataToUnacceptImage(resultId: string, stateName: string): TestUndoRefUpdateData | null;
    reuseTestsTree(testsTree: Tree): void;
    updateImageInfo(imageId: string, imageInfo?: TreeImage | null): TreeImage;
    removeTestResult(resultId: string): void;
    private _removeImagesById;
    private _reuseBrowser;
    private _reuseResults;
    private _reuseImages;
    _reuseSuiteStatus(testsTree: Tree, suiteId?: string | null): void;
}
export {};
