import type { Table } from '..';
import type { TableRecord } from '../types';
import { UpdateTracker } from '../../utilities/models/update-tracker';
declare const trackedItems: readonly ["rowIds", "rowParentIds", "groupRows", "columnIds", "columnHidden", "columnSort", "columnSortDisabled", "columnWidths", "columnDefinition", "actionMenuSlots", "selectionMode", "actionMenusPreserveSelection"];
/**
 * Helper class to track what updates are needed to the table based on configuration
 * changes.
 */
export declare class TableUpdateTracker<TData extends TableRecord> extends UpdateTracker<typeof trackedItems> {
    private readonly table;
    private updateQueued;
    constructor(table: Table<TData>);
    get updateRowIds(): boolean;
    get updateRowParentIds(): boolean;
    get updateGroupRows(): boolean;
    get updateColumnIds(): boolean;
    get updateColumnSort(): boolean;
    get updateColumnWidths(): boolean;
    get updateColumnDefinition(): boolean;
    get updateActionMenuSlots(): boolean;
    get updateSelectionMode(): boolean;
    get updateActionMenusPreserveSelection(): boolean;
    get requiresTanStackUpdate(): boolean;
    get requiresTanStackDataReset(): boolean;
    get requiresKeyboardFocusReset(): boolean;
    trackAllStateChanged(): void;
    get hasPendingUpdates(): boolean;
    trackColumnPropertyChanged(changedColumnProperty: string): void;
    trackColumnInstancesChanged(): void;
    trackIdFieldNameChanged(): void;
    trackParentIdFieldNameChanged(): void;
    trackSelectionModeChanged(): void;
    trackActionMenusPreserveSelectionChanged(): void;
    protected queueUpdate(): void;
}
export {};
