import { PromotionActions } from "@medusajs/framework/utils";
import { WorkflowData } from "@medusajs/framework/workflows-sdk";
/**
 * The details of the promotion updates on a cart.
 */
export type UpdateCartPromotionsWorkflowInput = {
    /**
     * The cart's ID.
     */
    cart_id?: string;
    /**
     * The Cart reference.
     */
    cart?: any;
    /**
     * The promotion codes to add to the cart, remove from the cart,
     * or replace all existing promotions in the cart.
     */
    promo_codes?: string[];
    /**
     * The action to perform with the specified promotion codes.
     */
    action?: PromotionActions.ADD | PromotionActions.REMOVE | PromotionActions.REPLACE;
    /**
     * Wether to force the refresh of the cart payment collection. If the caller doesn't refresh it explicitly,
     * you should probably set this property to true.
     */
    force_refresh_payment_collection?: boolean;
};
export declare const updateCartPromotionsWorkflowId = "update-cart-promotions";
/**
 * This workflow updates a cart's promotions, applying or removing promotion codes from the cart. It also computes the adjustments
 * that need to be applied to the cart's line items and shipping methods based on the promotions applied. This workflow is used by
 * [Add Promotions Store API Route](https://docs.medusajs.com/api/store#carts_postcartsidpromotions).
 *
 * You can use this workflow within your own customizations or custom workflows, allowing you to update a cart's promotions within your custom flows.
 *
 * @example
 * const { result } = await updateCartPromotionsWorkflow(container)
 * .run({
 *   input: {
 *     cart_id: "cart_123",
 *     promo_codes: ["10OFF"],
 *     // imported from @medusajs/framework/utils
 *     action: PromotionActions.ADD,
 *   }
 * })
 *
 * @summary
 *
 * Update a cart's applied promotions to add, replace, or remove them.
 *
 * @property hooks.validate - This hook is executed before all operations. You can consume this hook to perform any custom validation. If validation fails, you can throw an error to stop the workflow execution.
 */
export declare const updateCartPromotionsWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<UpdateCartPromotionsWorkflowInput, undefined, [import("@medusajs/framework/workflows-sdk").Hook<"validate", {
    input: WorkflowData<UpdateCartPromotionsWorkflowInput>;
    cart: any;
}, unknown>]>;
//# sourceMappingURL=update-cart-promotions.d.ts.map