import type { DashboardFetcher, WidgetDefinition } from './types'; import type { WidgetAccessAdapter } from './access/types'; /** * El contexto del tablero y su hook de lectura. * * Vive aparte de `DashboardContext.tsx` a propósito. Ese archivo exporta un COMPONENTE * (el provider) y `react-refresh/only-export-components` exige que un módulo con componentes * solo exporte componentes: mezclar el hook con el provider rompe el hot reload y era un error * de lint preexistente del módulo. Es la misma separación que ya hacía `skeletonShape.ts` * respecto de `WidgetSkeletons.tsx`. */ export interface DashboardContextValue { fetcher: DashboardFetcher; /** * El catálogo de widgets, para resolver la definición de un widget REFERENCIADO por otro. * * Lo necesita `useSecondarySource`: el sparkline de un KPI pide los datos de OTRA entrada del * catálogo bajo la MISMA clave de caché que usaría ese widget, así que tiene que aplicar el * `field_mapping.rename` de ESE widget —no el del KPI— o la entrada compartida quedaría con * los campos sin renombrar y el gráfico grande no encontraría sus `valueKeys`. * * Opcional: un host que monte piezas del tablero por separado sigue funcionando sin él (la * fuente secundaria degrada a no aplicar renombre, como hacía antes). */ catalog?: WidgetDefinition[]; /** * 🔴 El adaptador del diálogo de acceso, cuando el host tiene un modelo de permisos por * instancia. **Opcional**: sin él, el botón de acceso no se pinta en ningún sitio y el tablero * queda exactamente como estaba. * * Viaja por CONTEXTO y no por props porque su consumidor es la tarjeta del widget, que está * cinco niveles por debajo de la página (`DashboardPage` → `renderWidget` → `LazyWidget` → * `WidgetWrapper`). Atravesar cinco firmas con una prop que la mayoría de los hosts no usa es * justo lo que el contexto existe para evitar — y es donde ya viaja el `fetcher`. */ accessAdapter?: WidgetAccessAdapter; } export declare const DashboardContext: import("react").Context; /** * Expone el fetcher inyectado por el host, el catálogo de widgets y —si lo hay— el adaptador del * diálogo de acceso. * Lanza error si se usa fuera de `DashboardProvider`. */ export declare const useDashboardContext: () => DashboardContextValue; //# sourceMappingURL=useDashboardContext.d.ts.map