import { Event } from "../../../../base/common/event.js";
import { URI } from "../../../../base/common/uri.js";
import { ISCMRepository, ISCMProvider, type ISCMMenus, type ISCMRepositorySortKey, type ISCMViewVisibleRepositoryChangeEvent } from "@codingame/monaco-vscode-ff9fa663-eae3-5274-8573-c2b918871e4b-common/vscode/vs/workbench/contrib/scm/common/scm";
import { IObservable } from "../../../../base/common/observableInternal/index.js";
export declare const ISCMService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<ISCMService>;
export interface ISCMService {
    readonly _serviceBrand: undefined;
    readonly onDidAddRepository: Event<ISCMRepository>;
    readonly onDidRemoveRepository: Event<ISCMRepository>;
    readonly repositories: Iterable<ISCMRepository>;
    readonly repositoryCount: number;
    registerSCMProvider(provider: ISCMProvider): ISCMRepository;
    getRepository(id: string): ISCMRepository | undefined;
    getRepository(resource: URI): ISCMRepository | undefined;
}
export declare const ISCMViewService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<ISCMViewService>;
export interface ISCMViewService {
    readonly _serviceBrand: undefined;
    readonly menus: ISCMMenus;
    repositories: ISCMRepository[];
    readonly onDidChangeRepositories: Event<ISCMViewVisibleRepositoryChangeEvent>;
    visibleRepositories: readonly ISCMRepository[];
    readonly onDidChangeVisibleRepositories: Event<ISCMViewVisibleRepositoryChangeEvent>;
    isVisible(repository: ISCMRepository): boolean;
    toggleVisibility(repository: ISCMRepository, visible?: boolean): void;
    toggleSortKey(sortKey: ISCMRepositorySortKey): void;
    readonly focusedRepository: ISCMRepository | undefined;
    readonly onDidFocusRepository: Event<ISCMRepository | undefined>;
    focus(repository: ISCMRepository): void;
    readonly activeRepository: IObservable<ISCMRepository | undefined>;
}
