/** * GitHub repository synchronization. * Handles cloning and pulling repositories to local cache. */ import { GitHubRepoSpec } from "./github-config.js"; /** * Options for syncing GitHub repositories. */ export interface SyncOptions { cacheDir: string; token?: string; shallowClone?: boolean; } /** * Result of a sync operation. */ export interface SyncResult { spec: GitHubRepoSpec; localPath: string; clonePath: string; updated: boolean; error?: string; } /** * Sync a single GitHub repository. * Clones if not present, pulls if already cloned. * * @param spec - Repository specification * @param options - Sync options * @returns Sync result */ export declare function syncRepo(spec: GitHubRepoSpec, options: SyncOptions): Promise; /** * Sync multiple GitHub repositories. * * @param specs - Repository specifications * @param options - Sync options * @returns Array of sync results */ export declare function syncAllRepos(specs: GitHubRepoSpec[], options: SyncOptions): Promise; /** * Check if a repository has remote updates available. * Uses git fetch --dry-run to check without downloading. * * @param spec - Repository specification * @param options - Sync options * @returns true if updates are available */ export declare function hasRemoteUpdates(spec: GitHubRepoSpec, options: SyncOptions): Promise;