import { Bundle, Cart, Contact, Customer, GraphQLClient } from '@propeller-commerce/propeller-sdk-v2'; export interface ProductBundlesProps { /** GraphQL client instance used to fetch bundle data. Resolved from PropellerProvider when omitted. */ graphqlClient?: GraphQLClient; /** Currency symbol to display. Defaults to '€'. */ currency?: string; /** ID of the product whose bundles should be fetched. */ productId: number; /** Language code used for content (e.g. 'NL', 'EN'). Resolved from PropellerProvider when omitted. */ language?: string; /** Tax zone code used for pricing (e.g. 'NL'). */ taxZone: string; /** * When true, net price (incl. tax) is the leading price. * Note: in the Propeller SDK `price.gross` = excl. VAT, `price.net` = incl. VAT. */ includeTax?: boolean; /** * Controls portal visibility mode. * 'semi-closed' — prices and add-to-cart are hidden for anonymous users. * Defaults to 'open'. */ portalMode?: string; /** Authenticated user — used for semi-closed visibility check. */ user?: Contact | Customer | null; /** Active company ID from the company switcher. * Overrides user's default company for cart creation and lookup. * If not provided, the user's default company is used. */ companyId?: number; /** Cart ID — required when onAddToCart is not provided */ cartId?: string; /** * Callback to handle a new cart being created. * WARNING: If not provided the component create new carts on every add-to-cart. */ onCartCreated?: (cart: Cart) => void; /** * If true a new cart is created if no cart ID is provided. * Defaults to false. */ createCart?: boolean; /** When true, stock availability is validated before adding to cart. */ stockValidation?: boolean; /** * When true, the individual bundle items are listed inside each bundle card. * Defaults to true. */ showIndividualItems?: boolean; /** Additional configuration object passed through to the component. */ configuration?: any; /** * Layout variant for the bundle display. * - 'vertical' — stacked layout * - 'horizontal' — side-by-side (default) * - 'compact' — condensed, hides individual items */ layout?: "vertical" | "horizontal" | "compact"; /** * Override any UI string. * Available keys: title, condition_ALL, condition_EP, leaderItem, * youSave, adding, addToCart, loginToSeePrices, addedToCart, * modalTitle, continueShopping, proceedToCheckout, noCartId */ labels?: Record; /** * Show the "log in to see prices" prompt when prices are hidden. * Defaults to true; pass false to render nothing in its place. */ showLoginPrompt?: boolean; /** * When true a modal popup is shown after a successful add-to-cart * with buttons to continue shopping or proceed to checkout. * Defaults to false (only a brief inline toast is shown). */ showModal?: boolean; /** Callback fired when the "Proceed to checkout" modal button is clicked */ onProceedToCheckout?: () => void; /** * Callback triggered before adding the bundle to cart. */ beforeBundleAddToCart?: (bundleId: string, quantity: number) => boolean; /** Called when the user clicks "Add bundle to cart". Receives bundleId and quantity (always 1). */ onAddBundleToCart?: (bundleId: string, quantity: number) => void; /** * Callback triggered after adding the bundle to cart. */ afterBundleAddToCart?: (cart: Cart, bundle?: Bundle) => void; /** Extra CSS class applied to the root wrapper element. */ className?: string; } declare const _default: import('vue').DefineComponent & Readonly<{}>, { showLoginPrompt: boolean; showIndividualItems: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>; export default _default;