/** * WooCommerce REST API (v3) operations — single source of truth across the * api, hw-nodes, the dashboard and the MCP server. * * ## Dieciséis operaciones en cuatro familias (2026-09-28) * * Ariel eligió las cuatro familias que se automatizan en una tienda: * * - **Pedidos** — buscar, ver, crear, cambiar el estado, añadir una nota, * cancelar y reembolsar. * - **Productos e inventario** — buscar (con variaciones), ver, crear y * actualizar precio, stock o estado (también de una variación). * - **Clientes** — buscar, ver, crear o actualizar por correo. * - **Cupones** — crear y buscar. * * ## La credencial * * `woocommerce`: la URL de la tienda + una consumer key y su secret de la API * REST. WooCommerce NO tiene OAuth 2.0 — comprobado en su documentación el * 2026-09-28 —, pero su «Auth endpoint» (`/wc-auth/v1/authorize`) deja que el * dueño apruebe desde su propio WordPress y le entrega las keys a nuestro * callback: para el usuario es un botón «Connect», sin registrar ninguna app. * También se pueden pegar a mano (WooCommerce → Settings → Advanced → REST API). * * ## Cada campo existe en su API * * Nombres y valores sacados de la documentación de la API REST v3 * (`woocommerce-rest-api-docs`), no de memoria. Un campo inventado se acepta, * se ignora y el siguiente lo lee como si hiciera algo. */ export declare const WOOCOMMERCE_OPERATIONS: readonly ["findOrders", "getOrder", "createOrder", "updateOrderStatus", "addOrderNote", "cancelOrder", "refundOrder", "findProducts", "getProduct", "createProduct", "updateProduct", "findCustomers", "getCustomer", "upsertCustomer", "createCoupon", "findCoupons"]; export type WoocommerceOperation = (typeof WOOCOMMERCE_OPERATIONS)[number]; /** Type guard — for DTOs and AI tool calls, where the input is untrusted. */ export declare function isWoocommerceOperation(value: unknown): value is WoocommerceOperation; /** El tipo de credencial. Guarda la URL de la tienda DENTRO del blob cifrado: * es el host de toda llamada, no un detalle de presentación. */ export declare const WOOCOMMERCE_CREDENTIAL_TYPE = "woocommerce"; /** Todos los estados de un pedido (`status` de `/orders`). */ export declare const WOOCOMMERCE_ESTADOS_DE_PEDIDO: readonly ["pending", "processing", "on-hold", "completed", "cancelled", "refunded", "failed"]; /** * Los estados a los que se puede MOVER un pedido con «Update order status». * Cancelar y reembolsar van aparte: son las dos que nacen bloqueadas en el * toolkit, y un `status: cancelled` dentro de un cambio de estado cualquiera * se saltaría ese bloqueo. */ export declare const WOOCOMMERCE_ESTADOS_AL_ACTUALIZAR: readonly ["pending", "processing", "on-hold", "completed", "failed"]; /** Estados de un producto (`status` de `/products`). */ export declare const WOOCOMMERCE_ESTADOS_DE_PRODUCTO: readonly ["draft", "pending", "private", "publish"]; /** `stock_status` de un producto o variación. */ export declare const WOOCOMMERCE_ESTADOS_DE_STOCK: readonly ["instock", "outofstock", "onbackorder"]; /** `discount_type` de un cupón. WooCommerce pone `fixed_cart` si no se dice. */ export declare const WOOCOMMERCE_TIPOS_DE_DESCUENTO: readonly ["percent", "fixed_cart", "fixed_product"]; /** `per_page` no pasa de 100 en ningún listado de la API. */ export declare const WOOCOMMERCE_LISTADO_MAXIMO = 100; /** Lo que se pide si no se dice: 10, como la propia API. */ export declare const WOOCOMMERCE_LISTADO_POR_DEFECTO = 10; export interface WoocommerceParamSpec { /** Field key — also the property name on operationConfig. */ name: string; label: string; /** * Param type, so the dashboard renders the right control. `json` is an * object or list the user writes (or maps from the payload). */ type: 'text' | 'string' | 'number' | 'boolean' | 'select' | 'json'; required?: boolean; description: string; placeholder?: string; /** For `select`. */ options?: readonly string[]; /** For `number`. */ min?: number; max?: number; } export interface WoocommerceOperationSpec { label: string; description: string; /** The WooCommerce route this maps to, so the mapping is checkable. */ apiRoute: string; /** Changes something in the store (as opposed to only reading it). */ writes?: boolean; params: WoocommerceParamSpec[]; } export declare const WOOCOMMERCE_OPERATION_SPECS: Record;