/**
 * Sync Metadata Management
 *
 * Tracks last import timestamps per platform to support incremental imports
 * and prevent duplicate imports.
 */
/**
 * Platform-specific sync metadata
 */
export interface PlatformSyncMetadata {
    /** Timestamp of last successful import */
    lastImport: string;
    /** Total items imported in last sync */
    lastImportCount?: number;
    /** Total items skipped as duplicates in last sync */
    lastSkippedCount?: number;
    /** Last sync result (success, partial, failed) */
    lastSyncResult?: 'success' | 'partial' | 'failed';
    /** Error message from last failed sync attempt */
    lastError?: string;
}
/**
 * Sync metadata for all platforms
 */
export interface SyncMetadata {
    /** GitHub sync metadata */
    github?: PlatformSyncMetadata;
    /** JIRA sync metadata */
    jira?: PlatformSyncMetadata;
    /** Azure DevOps sync metadata */
    ado?: PlatformSyncMetadata;
    /** Last updated timestamp */
    lastUpdated?: string;
    /** Per-repo sync metadata for umbrella projects (keyed by repo id) */
    repos?: Record<string, Record<string, PlatformSyncMetadata>>;
}
/**
 * Default sync metadata file path relative to project root
 */
export declare const SYNC_METADATA_FILE = ".specweave/sync-metadata.json";
/**
 * Load sync metadata from file
 *
 * @param projectRoot - Project root directory
 * @returns Sync metadata or empty object if file doesn't exist
 */
export declare function loadSyncMetadata(projectRoot: string): SyncMetadata;
/**
 * Update sync metadata for a platform
 *
 * @param projectRoot - Project root directory
 * @param platform - Platform to update (github, jira, ado)
 * @param metadata - Platform-specific metadata to update
 */
export declare function updateSyncMetadata(projectRoot: string, platform: 'github' | 'jira' | 'ado', metadata: PlatformSyncMetadata): void;
/**
 * Get last import timestamp for a platform
 *
 * @param projectRoot - Project root directory
 * @param platform - Platform to query
 * @returns ISO timestamp of last import, or undefined if never imported
 */
export declare function getLastImportTimestamp(projectRoot: string, platform: 'github' | 'jira' | 'ado'): string | undefined;
/**
 * Check if platform has been imported before
 *
 * @param projectRoot - Project root directory
 * @param platform - Platform to check
 * @returns True if platform has been imported at least once
 */
export declare function hasPlatformBeenImported(projectRoot: string, platform: 'github' | 'jira' | 'ado'): boolean;
/**
 * Update sync metadata for a specific child repo in an umbrella project.
 * Stores data under the `repos[repoId]` key in the umbrella's sync-metadata.json.
 */
export declare function updateRepoSyncMetadata(umbrellaRoot: string, repoId: string, platform: 'github' | 'jira' | 'ado', metadata: PlatformSyncMetadata): void;
/**
 * Clear sync metadata for a platform (useful for testing or reset)
 *
 * @param projectRoot - Project root directory
 * @param platform - Platform to clear
 */
export declare function clearPlatformMetadata(projectRoot: string, platform: 'github' | 'jira' | 'ado'): void;
//# sourceMappingURL=sync-metadata.d.ts.map