import { Component } from 'vue'; import { Product, Cluster, FavoriteList, GraphQLClient, Contact, Customer, Cart, CartMainItem, CartChildItemInput } from '@propeller-commerce/propeller-sdk-v2'; export interface FavoriteListDetailsProps { /** GraphQL client for the Propeller SDK. Resolved from PropellerProvider when omitted. */ graphqlClient?: GraphQLClient; /** The logged in user for which the favorite list is going to be displayed. Resolved from PropellerProvider when omitted. */ user?: Contact | Customer; /** * Active company ID from the company switcher. * Overrides the user's default company for price calculation. * Triggers a re-fetch when changed. */ companyId?: number; /** The favorite list ID to display */ favoriteListId: string; /** Action method for deleting a single favorite list item. If not provided, delete button is hidden */ onItemDelete?: (itemId: string, itemType?: string) => void; /** Batched delete callback for the floating bar "Remove" action. When provided, it is called once with all selected items; otherwise the component falls back to calling `onItemDelete` per item */ onItemsDelete?: (items: { id: string; type: "product" | "cluster"; }[]) => void; /** Called after the favorite list is fetched, with the full list object */ onListLoaded?: (list: FavoriteList) => void; /** Called after an item is added to the list from the in-list search modal. * Use this to refresh the source the lists overview reads from (e.g. the * user object), so the per-list count stays correct after navigating back. */ onItemAdded?: (item: Product | Cluster) => void; /** Number of items to show per page (default: 12) */ itemsPerPage?: number; /** Show pagination controls (default: true) */ showPagination?: boolean; /** Pagination display variant: 'compact' or 'full' (default: 'compact') */ paginationVariant?: string; /** Extra CSS class applied to the root element */ className?: string; /** Configuration object for URL generation */ configuration?: any; /** UI string overrides */ labels?: Record; /** Should item titles link to the PDP (default: true) */ titleLinkable?: boolean; /** Show stock availability on items (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 beneath item names (default: true) */ showSku?: boolean; /** Enable add to cart for products. Clusters show "View cluster" instead (default: true) */ allowAddToCart?: boolean; /** Show delete button on each item (default: true) */ showDelete?: boolean; /** Callback when an item title or image is clicked */ onItemClick?: (item: Product | Cluster) => void; /** ID of an existing cart to add items to */ cartId?: string; /** Auto-create cart if none exists */ 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; /** Label overrides for FavoriteListItem UI strings */ itemLabels?: Record; /** Include tax in prices. Pass from PriceContext's usePrice() */ includeTax?: boolean; favoriteListItemComponent?: Component; gridPaginationComponent?: Component; } declare const _default: import('vue').DefineComponent & Readonly<{}>, { showStock: boolean; showAvailability: boolean; allowAddToCart: boolean; titleLinkable: boolean; showStockComponent: boolean; showSku: boolean; showDelete: boolean; showPagination: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>; export default _default;