import type { TablePluginState } from '../types';
export declare const shallowEqualExcept: <T extends object>(previousValue: T, currentValue: T, ignoredKey: keyof T) => boolean;
/**
 * Returns true when editor focus is the only table plugin state value that changed.
 *
 * Table reducers preserve references for unchanged values. If a reducer rebuilds a value, this
 * returns false and callers take the original full-work path rather than skipping incorrectly.
 */
export declare const isFocusOnlyChange: (previousState: TablePluginState, currentState: TablePluginState) => boolean;
export declare class FocusOnlyUpdateGuard {
    private lastProcessedState;
    /** Returns true and records the state when this is a skippable focus-only update. */
    skipIfFocusOnly(state: TablePluginState): boolean;
    markProcessed(state: TablePluginState): void;
    reset(): void;
}
