import { IRPCProtocol } from '@opensumi/ide-connection';
import { CancellationToken, Disposable } from '@opensumi/ide-core-common';
import { ITestService } from '@opensumi/ide-testing';
import { ITestProfileService } from '@opensumi/ide-testing/lib/common/test-profile';
import { ITestResultService } from '@opensumi/ide-testing/lib/common/test-result';
import { ExtensionRunTestsRequest, ILocationDto, ITestItem, ITestRunProfile, ITestRunTask, ResolvedTestRunRequest, SerializedTestMessage, TestResultState, TestsDiff } from '@opensumi/ide-testing/lib/common/testCollection';
import { IMainThreadTesting, ITestControllerPatch } from '../../../common/vscode';
export declare class MainThreadTestsImpl extends Disposable implements IMainThreadTesting {
    private logger;
    private proxy;
    private readonly testProviderRegistrations;
    protected readonly testService: ITestService;
    protected readonly testProfiles: ITestProfileService;
    protected readonly resultService: ITestResultService;
    constructor(rpcProtocol: IRPCProtocol);
    $registerTestController(controllerId: string, label: string, canRefreshValue: boolean): void;
    $updateController(controllerId: string, patch: ITestControllerPatch): void;
    $unregisterTestController(controllerId: string): void;
    $subscribeToDiffs(): void;
    $unsubscribeFromDiffs(): void;
    $publishDiff(controllerId: string, diff: TestsDiff): void;
    $publishTestRunProfile(config: ITestRunProfile): void;
    $updateTestRunConfig(controllerId: string, configId: number, update: Partial<ITestRunProfile>): void;
    $removeTestProfile(controllerId: string, configId: number): void;
    $runTests(req: ResolvedTestRunRequest, token: CancellationToken): Promise<string>;
    $addTestsToRun(controllerId: string, runId: string, tests: ITestItem[]): void;
    $updateTestStateInRun(runId: string, taskId: string, testId: string, state: TestResultState, duration?: number): void;
    $appendTestMessagesInRun(runId: string, taskId: string, testId: string, messages: SerializedTestMessage[]): void;
    $appendOutputToRun(runId: string, taskId: string, output: string, locationDto?: ILocationDto, testId?: string): void;
    $startedTestRunTask(runId: string, task: ITestRunTask): void;
    $finishedTestRunTask(runId: string, taskId: string): void;
    $startedExtensionTestRun(req: ExtensionRunTestsRequest): void;
    $finishedExtensionTestRun(runId: string): void;
    $markTestRetired(testIds: string[] | undefined): void;
    private withTestResult;
}
//# sourceMappingURL=main.thread.tests.d.ts.map