import { BigNumberInput, CartDTO, CartLineItemDTO, CreateCartCreateLineItemDTO, CustomerDTO, OrderWorkflow, ProductVariantDTO, RegionDTO, UpdateLineItemWithSelectorDTO } from "@medusajs/framework/types";
interface GetVariantsAndItemsWithPricesWorkflowInput {
    cart: Partial<CartDTO> & {
        region?: Partial<RegionDTO>;
        region_id?: string;
        customer?: Partial<CustomerDTO>;
        customer_id?: string;
    };
    items?: Partial<CreateCartCreateLineItemDTO | CartLineItemDTO | OrderWorkflow.OrderAddLineItemWorkflowInput["items"][number]>[];
    setPricingContextResult: object;
    variants?: {
        id?: string[];
        fields?: string[];
    };
}
type GetVariantsAndItemsWithPricesWorkflowOutput = {
    variants: (Partial<ProductVariantDTO> & {
        calculated_price: {
            calculated_price: {
                price_list_type: string;
            };
            is_calculated_price_tax_inclusive: boolean;
            original_amount: BigNumberInput;
            calculated_amount: BigNumberInput;
        };
    })[];
    lineItems: UpdateLineItemWithSelectorDTO[];
};
interface PrepareVariantsAndItemsWithPricesStepInput {
    cart: GetVariantsAndItemsWithPricesWorkflowInput["cart"];
    items: GetVariantsAndItemsWithPricesWorkflowInput["items"];
    variantsData: any[];
    calculatedPriceSets: Record<string, any>;
}
/**
 * This step builds the line items (with calculated prices) and the variants for
 * a cart, attaching each variant's calculated price. It throws an error if a
 * referenced variant doesn't exist / belongs to an unpublished product, or if a
 * variant has no price.
 */
export declare const prepareVariantsAndItemsWithPricesStep: import("@medusajs/framework/workflows-sdk").StepFunction<PrepareVariantsAndItemsWithPricesStepInput, GetVariantsAndItemsWithPricesWorkflowOutput>;
export declare const getVariantsAndItemsWithPricesId = "get-variant-items-with-prices-workflow";
/**
 * This workflow retrieves product variants and cart line items with their
 * calculated prices. It's used as a sub-workflow when adding items to a cart
 * or refreshing cart prices to attach up-to-date pricing context to each line
 * item.
 *
 * @example
 * const { result } = await getVariantsAndItemsWithPrices(container)
 *   .run({
 *     input: {
 *       cart: { id: "cart_123", items: [] },
 *       setPricingContextResult: {},
 *     },
 *   })
 *
 * @summary
 *
 * Retrieve variants and line items with their calculated prices.
 */
export declare const getVariantsAndItemsWithPrices: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<GetVariantsAndItemsWithPricesWorkflowInput, GetVariantsAndItemsWithPricesWorkflowOutput, []>;
export {};
//# sourceMappingURL=get-variants-and-items-with-prices.d.ts.map