import { Component } from 'vue'; import { Cart, Contact, Customer, GraphQLClient } from '@propeller-commerce/propeller-sdk-v2'; export interface CartIconAndSidebarProps { /** * Shopping cart that this component will operate with. * Should be passed from a cart state. */ cart: Cart | null; /** Currency symbol to display. Defaults to '€'. */ currency?: string; /** * Icon for the cart icon in header. * @default 'default-cart-icon' */ icon?: string; /** * Shows item count badge on the cart icon. * @default true */ showBadge?: boolean; /** * Shows the totals of the shopping cart beneath the icon when hovered. * @default false */ showTotals?: boolean; /** * Show cart sidebar at the right side of the screen when cart icon is clicked. * If false it will fire onCartIconClick() instead. * @default true */ showCartSidebarOnClick?: boolean; /** * Fires a click event when showCartSidebarOnClick is set to false. */ onCartIconClick?: (cart: Cart) => void; /** * Title for the shopping cart sidebar. * @default 'Shopping cart' */ cartSidebarTitle?: string; /** * Show checkout button in cart sidebar for immediate checkout. * @default true */ cartCheckoutButton?: boolean; /** * Fires a click event when the checkout button in the sidebar is clicked. */ onCheckoutButtonClick?: (cart: Cart) => void; /** * Show shopping cart page button in cart sidebar. * @default true */ cartPageButton?: boolean; /** * Fires a click event when the shopping cart button in the sidebar is clicked. */ onCartPageButtonClick?: (cart: Cart) => void; /** * Labels for the component. * Available keys: cartIconLabel, totalLabel, totalExclVat, itemsLabel, emptyCart, * continueShopping, qty, total, checkoutButton, cartPageButton, closeLabel */ labels?: Record; /** * Labels forwarded to the inner CartItem rows (e.g. `qtyPrefix`). Without * this the sidebar's line items fell back to English ("Qty:") even on a * localized page. Keys match CartItem's label map. */ cartItemLabels?: Record; /** Labels for the bonus-items block. Keys: `title`, `sku`. */ cartBonusItemsLabels?: Record; /** Logged-in user — used to determine purchaser role and authorization limit */ user?: Contact | Customer; /** Active company ID — used to look up the user's PAC for this company */ companyId?: number; /** Action handler when the "Request a Quote" button is clicked */ onRequestQuoteClick?: (cart: Cart) => void; /** GraphQL client — used for internal CartService calls (e.g. purchase authorization) */ graphqlClient?: GraphQLClient; /** Override the internal request purchase authorization call */ onRequestAuthorization?: (cart: Cart) => void; /** Fires after a successful purchase authorization request with the updated cart */ afterRequestAuthorization?: (cart: Cart) => void; /** Error handler for authorization request failures */ onError?: (error: Error) => void; /** * Additional class name for the shopping cart icon. */ iconClassName?: string; /** * Additional class name for the shopping cart sidebar. */ sidebarClassName?: string; /** Configuration object for image filters */ configuration?: any; /** Language used to build localized URLs for cart-item links. Defaults to 'NL'. */ language?: string; /** * Replaces each cart row rendered inside the drawer with a custom CartItem. * The drawer composes CartItem with cardFrame=false, showDelete=false, * readOnlyQuantity, and onTitleClick wired to close the sidebar. */ cartItemComponent?: Component; cartBonusItemsComponent?: Component; } declare const _default: import('vue').DefineComponent & Readonly<{}>, { showBadge: boolean; showCartSidebarOnClick: boolean; cartPageButton: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>; export default _default;