import type { ReleasesRepository } from "../../../../../repositories/channels/releases/ReleasesRepository.js"; import type { WidgetDefinitionsRepository } from "../../../../../repositories/channels/WidgetDefinitions/WidgetDefinitionsRepository.js"; import { type CustomWidgetOutput } from "./buildCustomWidget.js"; import { type SimpleWidgetOutput } from "./buildSimpleWidget.js"; import type { StoredWidgetVariable, VariableChanges, VariablesMode } from "./mergeWidgetVariables.js"; export type WidgetInput = { type?: "custom_widget" | "html" | "rich_text" | undefined; nameOrUuid?: string | undefined; code?: string | undefined; title: string; column: number; position: number; sync?: boolean | undefined; variables?: Record | undefined; createIfNotExists?: boolean | undefined; }; /** * Una instancia de widget ya presente en la página, en la forma mínima que hace * falta para reencontrarla y recuperar sus variables guardadas. */ export type ExistingPageWidget = { definition_uuid?: string | undefined; widget_definition_uuid?: string | undefined; column?: number | undefined; position?: number | undefined; variables?: StoredWidgetVariable[] | undefined; }; export type WidgetVariableChanges = VariableChanges & { /** Título de la instancia, para que el reporte sea legible. */ title: string; definitionUuid: string; /** * Si se encontró la instancia previa en la página. En false no había estado * que preservar (widget nuevo) o la coincidencia era ambigua. */ matched: boolean; }; export type ProcessWidgetsParams = { widgetsRepo: WidgetDefinitionsRepository; releasesRepo: ReleasesRepository; siteId: number; widgets: WidgetInput[]; publishWidgets?: boolean | undefined; /** Instancias actuales de la página, para poder mergear sus variables. */ existingWidgets?: ExistingPageWidget[] | undefined; /** `merge` (default) preserva las variables no mencionadas. */ variablesMode?: VariablesMode | undefined; debug: (msg: string, data?: Record) => void; }; export type ProcessWidgetsResult = { resolvedWidgets: Array; widgetsAdded: number; widgetsCreated: number; /** Solo trae entradas de los widgets donde hubo variables en juego. */ variableChanges: WidgetVariableChanges[]; }; /** * Process an array of widgets, resolving custom widgets and building API-ready objects. * Handles three widget types: html, rich_text, and custom_widget. */ export declare function processWidgets(params: ProcessWidgetsParams): Promise; //# sourceMappingURL=processWidgets.d.ts.map