import { FetchRepositoryBase } from "../../../shared/index.js"; import type { ListWidgetInstancesResponse, ListWidgetVariablesResponse, UpdateVariableInput, WidgetInstance, WidgetInstanceCreateInput, WidgetInstanceUpdateInput, WidgetVariableResponse } from "./WidgetInstancesTypes.js"; /** * Thin client over the atomic per-widget-instance endpoints: * * …/sites/{site}/layout_pages/{page}/widgets[/{id}] * …/sites/{site}/layout_pages/{page}/widgets/{id}/variables[/{slug}] * * Operating on a single widget instance does NOT round-trip the whole widgets * array, eliminating the read-modify-write race condition. The base URL already * includes `/api/admin` (same as PagesRepository). */ export declare class WidgetInstancesRepository extends FetchRepositoryBase { private widgetsPath; private variablesPath; /** Single widget responses are serialized bare; unwrap a `widget` root if present. */ private unwrapWidget; listWidgets(siteId: number, pageId: number): Promise; getWidget(siteId: number, pageId: number, widgetId: number): Promise; createWidget(siteId: number, pageId: number, widget: WidgetInstanceCreateInput): Promise; updateWidget(siteId: number, pageId: number, widgetId: number, widget: WidgetInstanceUpdateInput): Promise; deleteWidget(siteId: number, pageId: number, widgetId: number): Promise; listVariables(siteId: number, pageId: number, widgetId: number): Promise; getVariable(siteId: number, pageId: number, widgetId: number, slug: string): Promise; /** * Sets a SINGLE variable by slug. `selected` defaults to true (false unselects). * Only the targeted slug is touched — untouched slugs are preserved (no replace-all). */ updateVariable(siteId: number, pageId: number, widgetId: number, slug: string, input: UpdateVariableInput): Promise; /** Unselects (removes the stored value of) a single variable by slug. */ deleteVariable(siteId: number, pageId: number, widgetId: number, slug: string): Promise; } //# sourceMappingURL=WidgetInstancesRepository.d.ts.map