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