import type { HunkInfo } from '../types/hunk-info.js';
interface HistoryEntry {
    id: string;
    timestamp: number;
    patch: string;
    files: string[];
    selectors: Array<string | number>;
    description?: string;
}
export declare class HunkCacheService {
    private cachePath;
    private git;
    private cacheData;
    constructor(cwd?: string);
    private loadCache;
    private saveCache;
    /**
     * Get or create stable ID mapping for hunks
     */
    mapHunks(filePath: string, hunks: HunkInfo[]): HunkInfo[];
    /**
     * Find hunk by ID or index
     */
    findHunk(hunks: HunkInfo[], selector: string | number): HunkInfo | undefined;
    /**
     * Clear the cache
     */
    clearCache(): void;
    /**
     * Add a staging history entry
     */
    addHistory(entry: Omit<HistoryEntry, 'id' | 'timestamp'>): void;
    /**
     * Get history entries
     */
    getHistory(): HistoryEntry[];
    /**
     * Get specific history entry by index (0 = most recent)
     */
    getHistoryEntry(index: number): HistoryEntry | undefined;
    /**
     * Remove a history entry
     */
    removeHistoryEntry(index: number): void;
}
export {};
