import { Product, Cluster, GraphQLClient, Contact, Customer, Cart, CartMainItem, CartChildItemInput } from '@propeller-commerce/propeller-sdk-v2'; export interface FavoriteListItemProps { /** Product or Cluster to be listed as a favorite list item */ item: Product | Cluster; /** Currency symbol to display. Defaults to '€'. */ currency?: string; /** Should the item title be a link to the PDP (default: true) */ titleLinkable?: boolean; /** Should the stock be displayed in the favorite list item (default: false) */ showStockComponent?: boolean; /** Show availability status (e.g. "In stock") inside ItemStock (default: true) */ showAvailability?: boolean; /** Show numeric stock quantity inside ItemStock (default: true) */ showStock?: boolean; /** Display the SKU of the item beneath the item name (default: true) */ showSku?: boolean; /** Enables the add to cart functionality for products. Clusters show a "View cluster" button instead (default: true) */ allowAddToCart?: boolean; /** Display a delete button that removes the favorite list item from the list (default: true) */ showDelete?: boolean; /** Action callback fired when a favorite list item is deleted from the list */ onDelete?: (itemId: string) => void; /** Callback when the item title or image is clicked. Prevents default navigation when provided */ onItemClick?: (item: Product | Cluster) => void; /** Extra CSS class applied to the root element */ className?: string; /** Configuration object for URL generation */ configuration?: any; /** UI string overrides */ labels?: Record; /** Include tax in the price display. When provided, overrides the internal PriceToggle state */ includeTax?: boolean; /** Initialised Propeller SDK GraphQL client (required by embedded AddToCart) */ graphqlClient?: GraphQLClient; /** Authenticated user — used for cart creation / lookup */ user?: Contact | Customer | null; /** ID of an existing cart to add items to */ cartId?: string; /** When true and no cartId is available, AddToCart automatically creates a cart */ createCart?: boolean; /** Called after a new cart is created internally by AddToCart */ onCartCreated?: (cart: Cart) => void; /** Fully replaces the internal CartService.addItemToCart call */ onAddToCart?: (product: Product, clusterId?: number, quantity?: number, childItems?: CartChildItemInput[], notes?: string, price?: number, showModal?: boolean) => Cart; /** Called after every successful add-to-cart */ afterAddToCart?: (cart: Cart, item?: CartMainItem) => void; /** Show modal after successful add (default: false) */ showModal?: boolean; /** Renders increment/decrement buttons beside quantity input (default: true) */ allowIncrDecr?: boolean; /** Validate stock before adding to cart (default: false) */ enableStockValidation?: boolean; /** Language code forwarded to CartService (default: 'NL') */ language?: string; /** Called when "Proceed to checkout" is clicked in AddToCart modal */ onProceedToCheckout?: () => void; /** Called when "Request a Quote" is clicked in AddToCart modal */ onRequestQuoteClick?: (cart: Cart) => void; /** Label overrides for AddToCart UI strings */ addToCartLabels?: Record; /** Label overrides for ItemStock UI strings */ stockLabels?: Record; } interface FavoriteListItemState { isProduct: () => boolean; getProduct: () => Product; getCluster: () => Cluster; getName: () => string; getSku: () => string; getImageUrl: () => string; getItemUrl: () => string; getItemId: () => string; getItemPrice: () => string; getLabel: (key: string, fallback: string) => string; handleItemClick: (e: any) => void; handleDelete: () => void; } declare function handleItemClick(e: any): ReturnType; declare function handleDelete(): ReturnType; declare function __VLS_template(): { attrs: Partial<{}>; slots: { image?(_: { item: Product | Cluster; imageUrl: string; itemUrl: string; name: string; linkable: boolean; handleItemClick: typeof handleItemClick; }): any; sku?(_: { item: Product | Cluster; sku: string; }): any; name?(_: { item: Product | Cluster; name: string; itemUrl: string; linkable: boolean; handleItemClick: typeof handleItemClick; }): any; stock?(_: { item: Product | Cluster; isProduct: boolean; inventory: import('@propeller-commerce/propeller-sdk-v2').ProductInventory | undefined; labels: Record | undefined; }): any; price?(_: { item: Product | Cluster; formattedPrice: string; }): any; actions?(_: { item: Product | Cluster; isProduct: boolean; showDelete: boolean; allowAddToCart: boolean; handleDelete: typeof handleDelete; handleItemClick: typeof handleItemClick; labels: Record | undefined; }): any; }; refs: {}; rootEl: HTMLDivElement; }; type __VLS_TemplateResult = ReturnType; declare const __VLS_component: import('vue').DefineComponent & Readonly<{}>, { showStock: boolean; showAvailability: boolean; allowAddToCart: boolean; titleLinkable: boolean; showStockComponent: boolean; showSku: boolean; showDelete: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>; declare const _default: __VLS_WithTemplateSlots; export default _default; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };