/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

import { CancellationToken } from '@sussudio/base/common/cancellation.mjs';
import { IDisposable } from '@sussudio/base/common/lifecycle.mjs';
import { IWorkspaceFolder } from './workspace.mjs';
export interface IEditSessionIdentityProvider {
	readonly scheme: string;
	getEditSessionIdentifier(workspaceFolder: IWorkspaceFolder, token: CancellationToken): Promise<string | undefined>;
	provideEditSessionIdentityMatch(
		workspaceFolder: IWorkspaceFolder,
		identity1: string,
		identity2: string,
		token: CancellationToken,
	): Promise<EditSessionIdentityMatch | undefined>;
}
export declare const IEditSessionIdentityService: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<IEditSessionIdentityService>;
export interface IEditSessionIdentityService {
	readonly _serviceBrand: undefined;
	registerEditSessionIdentityProvider(provider: IEditSessionIdentityProvider): IDisposable;
	getEditSessionIdentifier(
		workspaceFolder: IWorkspaceFolder,
		cancellationToken: CancellationToken,
	): Promise<string | undefined>;
	provideEditSessionIdentityMatch(
		workspaceFolder: IWorkspaceFolder,
		identity1: string,
		identity2: string,
		cancellationToken: CancellationToken,
	): Promise<EditSessionIdentityMatch | undefined>;
}
export declare enum EditSessionIdentityMatch {
	Complete = 100,
	Partial = 50,
	None = 0,
}
