import React from 'react'; import type { DynamicEntitiesFetcher } from './api/fetcher'; /** * Permisos de escritura del usuario sobre el módulo. Cualquier flag ausente se * interpreta como permitido, de modo que un anfitrión que no los pase ve la UI * completa igual que siempre. */ export interface DynamicEntitiesPermissions { canCreate?: boolean; canUpdate?: boolean; canDelete?: boolean; } /** Los mismos permisos ya resueltos: sin `undefined`, listos para renderizar. */ export type ResolvedDynamicEntitiesPermissions = Required; export interface DynamicEntitiesContextType { baseUrl: string; onError?: (error: Error) => void; /** * Reemplaza el `fetch` global en TODAS las peticiones del módulo. El * anfitrión lo usa para añadir `Authorization`, `X-Company-Id`, * `Accept-Language`, tracing o reintentos. * * Ausente → se usa el `fetch` global (comportamiento previo, sin cambios). * * Se inyecta el transporte y no un `token` a propósito: el kit no debe saber * nada de autenticación, y un callback vivo no caduca a media sesión como sí * lo haría una cabecera fotografiada en el mount. */ fetcher?: DynamicEntitiesFetcher; /** * Oculta las acciones de escritura que el usuario no puede ejecutar. Sin * esta prop se muestran todas. */ permissions?: DynamicEntitiesPermissions; } export declare const DynamicEntitiesContext: React.Context; export interface DynamicEntitiesProviderProps { baseUrl: string; onError?: (error: Error) => void; /** Ver {@link DynamicEntitiesContextType.fetcher}. */ fetcher?: DynamicEntitiesFetcher; /** Ver {@link DynamicEntitiesContextType.permissions}. */ permissions?: DynamicEntitiesPermissions; children: React.ReactNode; } export declare const DynamicEntitiesProvider: React.FC; export declare const useDynamicEntitiesContext: () => DynamicEntitiesContextType; export declare const useOptionalDynamicEntitiesContext: () => DynamicEntitiesContextType | undefined; /** * Transporte HTTP ya normalizado. Funciona sin provider (cae al `fetch` global) * para los componentes que se pueden montar sueltos. */ export declare const useDynamicEntitiesFetcher: () => DynamicEntitiesFetcher; /** * Permisos resueltos. Sin provider —o sin la prop— devuelve todo en `true`, que * es el comportamiento histórico del módulo. */ export declare const useDynamicEntitiesPermissions: () => ResolvedDynamicEntitiesPermissions; //# sourceMappingURL=DynamicEntitiesProvider.d.ts.map