/******************************************************************** * ADOBE CONFIDENTIAL * __________________ * * Copyright 2024 Adobe * All Rights Reserved. * * NOTICE: All information contained herein is, and remains * the property of Adobe and its suppliers, if any. The intellectual * and technical concepts contained herein are proprietary to Adobe * and its suppliers and are protected by all applicable intellectual * property laws, including trade secret and copyright laws. * Dissemination of this information or reproduction of this material * is strictly forbidden unless prior written permission is obtained * from Adobe. *******************************************************************/ import { HTMLAttributes } from 'preact/compat'; import { Container, SlotProps } from '../../../node_modules/@dropins/tools/src/lib'; import { CartModel } from '../../data/models'; import { ImageProps } from '../../../node_modules/@dropins/tools/src/components'; export interface MiniCartProps extends HTMLAttributes { routeProduct?: (item: CartModel['items'][0]) => string; routeCart?: () => string; routeCheckout?: () => string; routeEmptyCartCTA?: () => string; slots?: { ProductList?: SlotProps; ProductListFooter?: SlotProps; PreCheckoutSection?: SlotProps; Thumbnail?: SlotProps<{ item: CartModel['items'][number]; defaultImageProps: ImageProps; }>; Heading?: SlotProps; EmptyCart?: SlotProps; Footer?: SlotProps; RowTotalFooter?: SlotProps<{ item: CartModel['items'][number]; }>; ProductAttributes?: SlotProps; CartSummaryFooter?: SlotProps; CartItem?: SlotProps; UndoBanner?: SlotProps<{ item: CartModel['items'][0]; loading: boolean; error?: string; onUndo: () => void; onDismiss: () => void; }>; ConfirmDeleteBanner?: SlotProps<{ item: CartModel['items'][0]; loading: boolean; onConfirm: () => void; onCancel: () => void; }>; ItemTitle?: SlotProps<{ item: CartModel['items'][number]; }>; ItemPrice?: SlotProps<{ item: CartModel['items'][number]; }>; ItemQuantity?: SlotProps<{ item: CartModel['items'][number]; enableUpdateItemQuantity: boolean | { removeOnZero?: boolean; }; handleItemQuantityUpdate: (item: CartModel['items'][number], quantity: number) => void; itemsLoading: Set; handleItemsError: (uid: string, message?: string) => void; handleItemsLoading: (uid: string, state: boolean) => void; onItemUpdate?: ({ item }: { item: CartModel['items'][number]; }) => void; }>; ItemTotal?: SlotProps<{ item: CartModel['items'][number]; }>; ItemSku?: SlotProps<{ item: CartModel['items'][number]; }>; ItemRemoveAction?: SlotProps<{ item: CartModel['items'][number]; enableRemoveItem: boolean; handleItemQuantityUpdate: (item: CartModel['items'][number], quantity: number) => void; handleItemsError: (uid: string, message?: string) => void; handleItemsLoading: (uid: string, state: boolean) => void; onItemUpdate?: ({ item }: { item: CartModel['items'][number]; }) => void; itemsLoading: Set; }>; }; hideFooter?: boolean; displayAllItems?: boolean; showDiscount?: boolean; showSavings?: boolean; enableItemRemoval?: boolean; enableQuantityUpdate?: boolean | { removeOnZero?: boolean; }; hideHeading?: boolean; undo?: boolean; confirmBeforeDelete?: boolean; } export declare const MiniCart: Container;