import { ColumnConfig } from '../../../shared/types/table'; /** * Hook que mantiene el estado de las columnas (orden, visibilidad, bloqueo, ancho) * y lo sincroniza con las columnas que pasa el padre. * * Cuando el padre actualiza las columnas (p. ej. columnOptions cargadas por API * tras React Query), este efecto actualiza el estado interno para que los dropdowns * y el resto de celdas reciban las opciones correctas. Se preservan width, visible, * locked y el orden actual si el conjunto de columnas no cambia (solo el contenido). * * Si el padre pasa una **nueva referencia** de `render` o `accessor` (función) en una * columna, el estado interno se sincroniza para que las celdas (p. ej. acciones) no * queden con closures obsoletos. * * Recomendación: el padre debe memoizar las columnas (useMemo con deps como * columnOptions) para que initialColumns solo cambie cuando cambien realmente * las definiciones. */ export declare const useTableColumns: (initialColumns: ColumnConfig[]) => { columns: ColumnConfig[]; handleToggleVisibility: (columnId: string) => void; handleSetVisibility: (columnId: string, visible: boolean) => void; handleToggleLock: (columnId: string) => void; handleResize: (columnId: string, width: number) => void; handleReorder: (fromIndex: number, toIndex: number) => void; setColumnsOrder: (orderedColumnIds: string[]) => void; resetColumns: () => void; }; //# sourceMappingURL=useTableColumns.d.ts.map