import { ColumnConfig } from '../../core/types';
/**
 * Filter columns to only include visible ones.
 *
 * @param columns - Array of column configurations
 * @param hidden - Set of hidden field names
 * @returns New array containing only visible columns
 */
export declare function filterVisibleColumns<TRow = unknown>(columns: ColumnConfig<TRow>[], hidden: Set<string>): ColumnConfig<TRow>[];
/**
 * Check if a column can be hidden.
 * Respects lockVisible property and allowHideAll setting.
 *
 * @param columns - All column configurations
 * @param field - Field to check
 * @param hidden - Currently hidden field names
 * @param allowHideAll - Whether hiding all columns is allowed
 * @returns True if the column can be hidden
 */
export declare function canHideColumn<TRow = unknown>(columns: ColumnConfig<TRow>[], field: string, hidden: Set<string>, allowHideAll: boolean): boolean;
/**
 * Toggle column visibility state.
 *
 * @param hidden - Current set of hidden field names
 * @param field - Field to toggle
 * @param visible - Explicit visibility state (undefined = toggle)
 * @returns New Set with updated hidden state
 */
export declare function toggleColumnVisibility(hidden: Set<string>, field: string, visible?: boolean): Set<string>;
//# sourceMappingURL=visibility.d.ts.map