import { type SourceStatusFileRecord, type SourceStatusResult } from './api-client'; export interface SourceTrackingEntry { componentKey: string; track: 'metadata-runtime' | 'code-extension' | 'employee-source'; localHash: string; remoteHash: string; lastSyncedHash: string; baselineHash?: string | null; } export interface SourceTrackingData { schemaVersion: number; workspaceRoot: string; lastSync?: { remoteRevision?: string; baselineRevision?: string | null; syncedAt?: string; }; files: Record; } export interface LocalSourceEntry { path: string; absolutePath: string; content: string; hash: string; componentKey: string; track: 'metadata-runtime' | 'code-extension' | 'employee-source'; } export type SourceSyncStatus = 'synced' | 'local-new' | 'local-changed' | 'local-delete' | 'remote-new' | 'remote-changed' | 'remote-delete' | 'conflict'; export type DriftStatus = 'baseline-missing' | 'in-sync' | 'drifted'; export interface SourceStatusEntry { path: string; componentKey: string; syncStatus: SourceSyncStatus; driftStatus: DriftStatus; localHash: string; remoteHash: string; lastSyncedHash: string; baselineHash: string | null; aliases?: { local: string[]; remote: string[]; baseline: string[]; tracking: string[]; }; canonicalCollision?: boolean; } export declare function normalizeSourceSelectionPath(candidate: string): string; export declare function getTrackingFilePath(baseDir?: string): string; export declare function resolveTrackedFilePath(baseDir: string, trackedPath: string): string; export declare function deriveComponentKey(trackedPath: string): string; export declare function loadTrackingData(baseDir?: string): SourceTrackingData; export declare function saveTrackingData(baseDir: string, data: SourceTrackingData): void; export declare function collectLocalSourceFiles(baseDir?: string): string[]; export declare function collectLocalSourceEntries(baseDir?: string): LocalSourceEntry[]; export declare function readSourceFiles(baseDir?: string): Array<{ path: string; content: string; }>; export declare function readSelectedSourceDirectory(baseDir: string): Array<{ path: string; content: string; }>; export declare function calculateSourceStatus(input: { baseDir?: string; remoteFiles?: SourceStatusFileRecord[]; baselineFiles?: SourceStatusFileRecord[]; }): SourceStatusEntry[]; export declare function writeTrackedSourceFile(baseDir: string, trackedPath: string, content: string): void; export declare function deleteTrackedSourceFile(baseDir: string, trackedPath: string): void; export declare function syncTrackingWithStatus(input: { baseDir?: string; status: SourceStatusResult; targetPaths: string[]; syncedAt?: string; }): void; export declare function filterByMetadataSelector(statuses: SourceStatusEntry[], selectors: string[]): SourceStatusEntry[]; export declare function filterByDirectory(statuses: SourceStatusEntry[], dirs: string[]): SourceStatusEntry[]; export declare function refreshTrackingWithRemoteStatus(input: { baseDir?: string; status: SourceStatusResult; targetPaths?: string[]; }): void;