/** * GitHub repository polling for updates. * Periodically checks for changes and triggers sync when updates are available. */ import { GitHubRepoSpec } from "./github-config.js"; import { SyncOptions, SyncResult } from "./github-sync.js"; /** * Options for the polling manager. */ export interface PollingOptions { intervalMs: number; onUpdate: (spec: GitHubRepoSpec, result: SyncResult) => void; onError?: (spec: GitHubRepoSpec, error: Error) => void; } /** * Polling manager interface. */ export interface PollingManager { start(): void; stop(): void; checkNow(): Promise; isRunning(): boolean; } /** * Create a polling manager for GitHub repositories. * * The manager periodically checks for updates and syncs repositories * when changes are detected. Pinned refs (tags, commits) are skipped. * * @param specs - Repository specifications to poll * @param syncOptions - Options for sync operations * @param pollingOptions - Polling configuration * @returns Polling manager */ export declare function createPollingManager(specs: GitHubRepoSpec[], syncOptions: SyncOptions, pollingOptions: PollingOptions): PollingManager;