import { IRPCProtocol } from '@opensumi/ide-connection';
import { Disposable, UriComponents } from '@opensumi/ide-core-common';
import { IMainThreadSCMShape, SCMActionButtonDto, SCMGroupFeatures, SCMHistoryItemGroupDto, SCMInputActionButtonDto, SCMProviderFeatures, SCMRawResourceSplices } from '../../../common/vscode/scm';
export declare class MainThreadSCM extends Disposable implements IMainThreadSCMShape {
    private rpcProtocol;
    private readonly scmService;
    private readonly _proxy;
    private _repositories;
    private _inputDisposables;
    constructor(rpcProtocol: IRPCProtocol);
    dispose(): void;
    $registerSourceControl(handle: number, id: string, label: string, rootUri: UriComponents | undefined): void;
    $updateSourceControl(handle: number, features: SCMProviderFeatures): void;
    $unregisterSourceControl(handle: number): void;
    $registerGroup(sourceControlHandle: number, groupHandle: number, id: string, label: string): void;
    $updateGroup(sourceControlHandle: number, groupHandle: number, features: SCMGroupFeatures): void;
    $updateGroupLabel(sourceControlHandle: number, groupHandle: number, label: string): void;
    $spliceResourceStates(sourceControlHandle: number, splices: SCMRawResourceSplices[]): void;
    $unregisterGroup(sourceControlHandle: number, handle: number): void;
    $setInputBoxValue(sourceControlHandle: number, value: string): void;
    $setInputBoxPlaceholder(sourceControlHandle: number, placeholder: string): void;
    $setInputBoxEnablement(sourceControlHandle: number, enabled: boolean): void;
    $setInputBoxVisibility(sourceControlHandle: number, visible: boolean): void;
    $setValidationProviderIsEnabled(sourceControlHandle: number, enabled: boolean): void;
    $onDidChangeHistoryProviderActionButton(sourceControlHandle: number, actionButton?: SCMActionButtonDto | null | undefined): void;
    $onDidChangeHistoryProviderCurrentHistoryItemGroup(sourceControlHandle: number, historyItemGroup: SCMHistoryItemGroupDto | undefined): void;
    $setInputBoxActionButton(sourceControlHandle: number, actionButton?: SCMInputActionButtonDto | null | undefined): void;
    private onDidChangeSelectedRepositories;
}
//# sourceMappingURL=main.thread.scm.d.ts.map