import { URI } from "../../../../base/common/uri.js"; import { Event } from "../../../../base/common/event.js"; import { ThemeIcon } from "../../../../base/common/themables.js"; import { ISCMRepository } from "./scm.js"; import { Command } from "../../../../editor/common/languages.js"; export interface ISCMArtifactProvider { readonly onDidChangeArtifacts: Event; provideArtifactGroups(): Promise; provideArtifacts(group: string): Promise; } export interface ISCMArtifactGroup { readonly id: string; readonly name: string; readonly icon?: URI | { light: URI; dark: URI; } | ThemeIcon; readonly supportsFolders?: boolean; } export interface ISCMArtifact { readonly id: string; readonly name: string; readonly description?: string; readonly icon?: URI | { light: URI; dark: URI; } | ThemeIcon; readonly timestamp?: number; readonly command?: Command; } export interface SCMArtifactGroupTreeElement { readonly repository: ISCMRepository; readonly artifactGroup: ISCMArtifactGroup; readonly type: "artifactGroup"; } export interface SCMArtifactTreeElement { readonly repository: ISCMRepository; readonly group: ISCMArtifactGroup; readonly artifact: ISCMArtifact; readonly hideTimestamp: boolean; readonly type: "artifact"; }