import { BaseLayer, FilePattern } from './layer-types'; /** * Version Control Layer - provides VCS-specific functionality * including ignore patterns, tracked files, and VCS metadata */ export interface VersionControlLayer extends BaseLayer { type: 'version-control'; vcsData: { system: 'git' | 'svn' | 'mercurial' | 'perforce' | 'unknown'; repositoryRoot: string; remotes?: Array<{ name: string; url: string; type: 'fetch' | 'push' | 'both'; }>; currentBranch?: string; currentRevision?: string; ignorePatterns: VersionControlIgnorePattern[]; status?: { trackedFiles?: string[]; untrackedFiles?: string[]; modifiedFiles?: string[]; stagedFiles?: string[]; conflictedFiles?: string[]; }; }; } /** * Represents an ignore pattern from version control */ export interface VersionControlIgnorePattern extends FilePattern { source: string; negated?: boolean; directoryOnly?: boolean; scope?: string; } /** * Interface for version control providers */ export interface VersionControlProvider { detect(directoryPath: string): Promise; getRepositoryRoot(directoryPath: string): Promise; createLayer(repositoryRoot: string): Promise; extractIgnorePatterns(repositoryRoot: string): Promise; getCurrentBranch(repositoryRoot: string): Promise; getCurrentRevision(repositoryPath: string): Promise; getRemotes(repositoryRoot: string): Promise>; } //# sourceMappingURL=version-control-layer.d.ts.map