import { Column } from '../Table.types';
export interface UseTableColumnsOptions<T> {
    columns?: Column<T>[];
    initialVisibleColumns?: string[];
    onVisibleColumnsChange?: (visibleColumns: string[]) => void;
    onColumnReorder?: (fromIndex: number, toIndex: number) => void;
}
export interface UseTableColumnsReturn<T> {
    visibleColumns: string[];
    columnOrder: string[];
    visibleColumnsList: Column<T>[];
    handleToggleColumn: (columnId: string) => void;
    handleColumnReorder: (fromIndex: number, toIndex: number) => void;
    handleResetToDefault: () => void;
}
export declare function useTableColumns<T>({ columns, initialVisibleColumns, onVisibleColumnsChange, onColumnReorder, }: UseTableColumnsOptions<T>): UseTableColumnsReturn<T>;
