import React from 'react'; import type { WidgetDefinition } from '../../types'; import { type DashboardCategoryInput } from './categories'; interface WidgetBuilderProps { isOpen: boolean; onClose: () => void; onSuccess: (widget: WidgetDefinition) => void; mode?: 'create' | 'edit'; editWidget?: WidgetDefinition; isAdmin?: boolean; /** * Capacidad de cambiar la EXPOSICION de un widget: a quien alcanza (`es_privado`, * `roles_permitidos`) y con que autoridad se pide su dato (`is_internal`). Es lo que gobierna el * paso de permisos del asistente. * * Se separa de `isAdmin` porque el backend la exige por separado, y en modo edicion manda lo que * diga el propio widget (`permissions.can_publish`). Sin valor cae a `isAdmin`, que es el * comportamiento historico. */ canPublishWidgets?: boolean; showExternalEndpoints?: boolean; /** * 🔴 **`availableRoles` se RETIRÓ el 2026-09-14 (F3).** El paso de permisos ya no pregunta la * vertical: la determina la categoría. El tipo sigue exportado porque el **diálogo de acceso** lo * usa para ofrecer «que lo vea todo ventas» como sujeto de un grant — que es repartir algo que ya * existe, otro acto —, pero el Constructor no lo recibe. * * El vocabulario de categorías trae ahora la **pareja** categoría→vertical. Ver * `DashboardCategoryOption`. */ availableCategories?: DashboardCategoryInput[]; /** * 🔴 **F4.4 — «ofrece abrir el diálogo de acceso».** Se llama cuando el indicador se creó pero el * reparto quedó a medias, con el widget ya creado. * * Sin esto el aviso sería un callejón: se le dice a alguien que su indicador quedó * restringido y sin nadie dentro, y se le deja buscarlo en el catálogo. El host conecta esto con * su diálogo de acceso; si no lo declara, el asistente solo cierra. */ onNeedsAccessDialog?: (widget: WidgetDefinition) => void; } export declare const WidgetBuilder: React.FC; export {}; //# sourceMappingURL=WidgetBuilder.d.ts.map