import { ColumnType } from '../types';
/**
 * Props for the useColumns hook.
 * @template TData - The type of data associated with the columns.
 */
export interface UseColumnsProps<TData> {
    /** Unique key to identify the table for persisting column state. */
    key: string;
    /** Array of column definitions. */
    columns: ColumnType<TData>[];
}
/**
 * useColumns manages visibility of table columns using a persisted store.
 * Returns formatted columns and helpers to toggle/reset visibility.
 *
 * @template TData - Row data type.
 * @param key - Unique key for storing visibility per table.
 * @param columns - Original column definitions.
 * @returns {Object} Column management object
 * @returns {ColumnType<TData>[]} formattedColumns - Filtered columns with visibility applied from store
 * @returns {(column: ColumnType<TData>, value: boolean) => void} handleColumnsChange - Function to toggle column visibility
 * @returns {() => void} resetColumns - Function to reset all columns to their default visibility
 */
export declare const useColumns: <TData>({ key, columns, }: UseColumnsProps<TData>) => {
    formattedColumns: (Omit<ColumnType<TData>, "hidden"> & {
        hidden: boolean;
    })[];
    handleColumnsChange: (column: ColumnType<TData>, value: boolean) => void;
    resetColumns: () => void;
};
//# sourceMappingURL=useColumns.d.ts.map