/** * Resolución de las variables de una instancia de custom_widget (issue #179). * * El endpoint de página aplica las variables replace-all: lo que no viaja en el * array se pierde. Construir el payload solo con las entradas recibidas —lo que * se hacía hasta ahora— convierte cualquier llamada parcial en un borrado * silencioso de las demás. En el PoC de Langflow así se pisó una API key. * * Por eso el modo por defecto es `merge`: se relee el estado guardado de la * instancia y las variables no mencionadas se reenvían tal cual. `replace` * mantiene el comportamiento destructivo, pero solo si se pide explícitamente, * y nombrando en la respuesta lo que se descarta. */ /** Cómo se combinan las variables recibidas con las ya guardadas. */ export type VariablesMode = "merge" | "replace"; /** Una variable tal como la devuelve la instancia (el valor puede venir nulo). */ export type StoredWidgetVariable = { slug: string; value?: string | null | undefined; selected?: boolean | undefined; }; /** Una variable tal como la espera el payload de escritura. */ export type WidgetVariablePayload = { slug: string; value: string; selected: boolean; }; export type VariableChanges = { mode: VariablesMode; /** Slugs con valor explícito en esta llamada. */ set: string[]; /** Slugs con valor guardado que la llamada no menciona y se conservan. */ preserved: string[]; /** Slugs con valor guardado que la llamada no menciona y se descartan. */ discarded: string[]; }; export type MergeWidgetVariablesResult = { variables: WidgetVariablePayload[]; changes: VariableChanges; }; export type MergeWidgetVariablesInput = { /** Variables recibidas en la llamada (slug -> valor). */ incoming?: Record | undefined; /** Variables ya guardadas en la instancia que se está reescribiendo. */ existing?: StoredWidgetVariable[] | undefined; /** Por defecto `merge`. */ mode?: VariablesMode | undefined; }; export declare function mergeWidgetVariables(input: MergeWidgetVariablesInput): MergeWidgetVariablesResult; //# sourceMappingURL=mergeWidgetVariables.d.ts.map