import type { TableState } from './use-table.js';
type ColumnVisibility = TableState['columnVisibility'];
/**
 * Hook that persists column visibility preferences to localStorage.
 *
 * @param defaultVisibleColumns - The default visibility map. Its keys define the set of valid column IDs.
 * Must be a stable reference (e.g. via `useRef`) to avoid re-reading localStorage on every render.
 * @param maxSelectableColumns - Maximum number of columns that can be visible at the same time.
 * @param tableId - Unique identifier for the table. When omitted, no persistence occurs.
 */
export declare const usePersistedColumnVisibility: (defaultVisibleColumns: ColumnVisibility, maxSelectableColumns: number, tableId?: string) => {
    initialColumnVisibility: Record<string, boolean>;
    persistColumnVisibility: (visibility: ColumnVisibility) => void;
};
export {};
//# sourceMappingURL=use-persisted-column-visibility.d.ts.map