import * as React from '@theia/core/shared/react'; import { ReactWidget, LabelProvider, ContextMenuRenderer } from '@theia/core/lib/browser'; import { LabelParser } from '@theia/core/lib/browser/label-parser'; import { CommandService, MenuPath } from '@theia/core/lib/common'; import { DisposableCollection } from '@theia/core/lib/common/disposable'; import { Path } from '@theia/core/lib/common/path'; import { ScmService } from './scm-service'; import { ScmRepository } from './scm-repository'; import { ScmCommand } from './scm-provider'; import { ScmContextKeyService } from './scm-context-key-service'; /** Menu path matching the VS Code 'scm/title' contribution point (git actions: Pull, Push, etc.). */ export declare const SCM_TITLE_MENU: MenuPath; /** Menu path matching the VS Code 'scm/sourceControl' contribution point (inline toolbar actions on repo entries). */ export declare const SCM_SOURCE_CONTROL_MENU: MenuPath; /** Menu path matching the VS Code 'scm/sourceControl/context' contribution point (context menu on repo entries). */ export declare const SCM_SOURCE_CONTROL_CONTEXT_MENU: MenuPath; /** Menu path matching the VS Code 'scm/sourceControl/title' contribution point (REPOSITORIES section header toolbar). */ export declare const SCM_SOURCE_CONTROL_TITLE_MENU: MenuPath; interface RepoGroup { root: ScmRepository; children: ScmRepository[]; collapsed: boolean; } export declare class ScmRepositoriesWidget extends ReactWidget { static ID: string; protected readonly scmService: ScmService; protected readonly labelProvider: LabelProvider; protected readonly labelParser: LabelParser; protected readonly commandService: CommandService; protected readonly contextMenuRenderer: ContextMenuRenderer; protected readonly scmContextKeys: ScmContextKeyService; protected readonly toDisposeOnRepositoriesChange: DisposableCollection; protected readonly collapsedRoots: Set; protected init(): void; protected onRepositoriesChanged(): void; protected groupRepositories(): RepoGroup[]; protected getRepoDescriptions(): Map; protected commonParentPath(paths: Path[]): Path; protected render(): React.ReactNode; protected renderGroup(group: RepoGroup, descriptions: Map): React.ReactNode; protected renderRepository(repo: ScmRepository, hasChildren: boolean, collapsed: boolean, isChild?: boolean, descriptions?: Map): React.ReactNode; protected renderStatusCommand(cmd: ScmCommand, index: number, isSelected: boolean): React.ReactNode; protected toggleCollapse(rootUri: string): void; protected showContextMenu(e: React.MouseEvent, repo: ScmRepository): void; protected showSourceControlContextMenu(e: React.MouseEvent, repo: ScmRepository): void; protected getRepoIcon(repo: ScmRepository, isChild: boolean): string; protected selectRepository(repo: ScmRepository): void; } export {}; //# sourceMappingURL=scm-repositories-widget.d.ts.map