import type DataGrid from '../core/DataGrid';
import type { TableSnapshot, SnapshotCompareResult } from './TestHooks';
/**
 * Manages table state snapshots for regression testing.
 * Snapshots capture the complete visual state of the table
 * (visible cells, column configs, scroll position, dimensions)
 * and can be compared against the current state to detect layout regressions.
 */
export declare class SnapshotManager {
    private grid;
    private snapshots;
    constructor(grid: DataGrid);
    /**
     * Create a snapshot of the current table state.
     * @param name - Unique snapshot identifier
     * @returns The created TableSnapshot
     */
    createSnapshot(name: string): TableSnapshot;
    /**
     * Compare the current table state against a previously saved snapshot.
     * @param name - Snapshot name to compare against
     * @param tolerance - Pixel tolerance for coordinate comparisons (default: 1)
     * @returns SnapshotCompareResult with list of differences
     */
    compareSnapshot(name: string, tolerance?: number): SnapshotCompareResult;
    /**
     * Get a previously saved snapshot by name.
     * @param name - Snapshot identifier
     * @returns Deep copy of the snapshot or null
     */
    getSnapshot(name: string): TableSnapshot | null;
    /**
     * Export a snapshot as a JSON string for saving to a file.
     * @param name - Snapshot identifier
     * @returns JSON string or null if not found
     */
    exportSnapshot(name: string): string | null;
    /**
     * Import a snapshot from a JSON string.
     * @param json - JSON string representing a TableSnapshot
     */
    importSnapshot(json: string): void;
    private captureVisibleCells;
    private captureColumnConfigs;
    private captureScrollPosition;
    private captureDimensions;
    private compareDimensions;
    private compareScrollPosition;
    private compareColumns;
    private compareVisibleCells;
    /**
     * Check if two numeric values are within a given tolerance.
     */
    private isWithinTolerance;
}
