import type { Response } from 'express';
import { RunParams, ToolRunnerTree, UndoAcceptImagesResult } from './tool-runner';
import { TestBranch, TestEqualDiffsData, TestRefUpdateData } from '../tests-tree-builder/gui';
import type { ServerArgs } from './index';
import type { TestSpec } from '../adapters/tool/types';
export declare class App {
    private _toolRunner;
    static create<T extends App>(this: new (args: ServerArgs) => T, args: ServerArgs): T;
    constructor(args: ServerArgs);
    get data(): ToolRunnerTree | null;
    initialize(): Promise<void>;
    finalize(): Promise<void>;
    run(tests: TestSpec[], params: RunParams): Promise<boolean>;
    getTestsDataToUpdateRefs(imageIds?: string[]): TestRefUpdateData[];
    getImageDataToFindEqualDiffs(imageIds?: string[]): TestEqualDiffsData[];
    updateReferenceImage(failedTests?: TestRefUpdateData[]): Promise<TestBranch[]>;
    undoAcceptImages(imageIds: TestRefUpdateData[]): Promise<UndoAcceptImagesResult>;
    findEqualDiffs(data: TestEqualDiffsData[]): Promise<string[]>;
    refreshTests(): Promise<ToolRunnerTree | null>;
    addClient(connection: Response): void;
    sendClientEvent(event: string, data: unknown): void;
}
