import { ColumnConfig, TableConfigState, SortConfig, FilterConfig } from '../../../shared/types/table'; interface UseTableConfigOptions { /** Clave única para identificar esta tabla en localStorage */ configKey?: string; /** Habilitar persistencia en localStorage */ persistConfig?: boolean; /** Persistir filtros y búsqueda en la misma configKey (por defecto true) */ queryPersist?: boolean; /** Columnas iniciales de la tabla */ initialColumns: ColumnConfig[]; /** Ordenamiento inicial */ initialSort?: SortConfig; /** Filtros iniciales */ initialFilters?: FilterConfig[]; /** Callback cuando cambia la configuración */ onConfigChange?: (config: TableConfigState, changeType: string) => void; } interface UseTableConfigReturn { /** Columnas con la configuración aplicada */ columns: ColumnConfig[]; /** Ordenamiento actual */ sort?: SortConfig; /** Filtros actuales */ filters: FilterConfig[]; /** Texto de búsqueda persistido */ searchQuery: string; /** Actualizar orden de columnas */ updateColumnOrder: (newColumns: ColumnConfig[]) => void; /** Actualizar visibilidad de columna */ updateColumnVisibility: (columnId: string, visible: boolean) => void; /** Actualizar visibilidad de múltiples columnas de una vez */ updateMultipleColumnVisibility: (updates: Array<{ columnId: string; visible: boolean; }>) => void; /** Actualizar bloqueo de columna */ updateColumnLock: (columnId: string, locked: boolean) => void; /** Actualizar ancho de columna. defaultWidthAtStart = ancho al inicio del resize (para poder volver al mínimo). */ updateColumnWidth: (columnId: string, width: number | string, defaultWidthAtStart?: number) => void; /** Actualizar ordenamiento */ updateSort: (newSort: SortConfig) => void; /** Actualizar filtros */ updateFilters: (newFilters: FilterConfig[]) => void; /** Actualizar texto de búsqueda */ setSearchQuery: (query: string) => void; /** Resetear configuración a valores iniciales */ resetConfig: () => void; /** Configuración actual completa */ currentConfig: TableConfigState; } /** * Hook para manejar la persistencia de configuración de tabla en localStorage * * @example * ```tsx * const { columns, updateColumnOrder, updateColumnLock } = useTableConfig({ * configKey: 'my-table', * persistConfig: true, * initialColumns: myColumns, * }) * ``` */ export declare const useTableConfig: ({ configKey, persistConfig, queryPersist, initialColumns, initialSort, initialFilters, onConfigChange, }: UseTableConfigOptions) => UseTableConfigReturn; export {}; //# sourceMappingURL=useTableConfig.d.ts.map