import React, { Component } from 'react'; import type { ImageStyle, ImageURISource, StyleProp, TextStyle, ViewStyle } from 'react-native'; import type { CommerceTypes } from '../../../../libs/fscommerce'; import type { ButtonProps } from '../Button'; import type { ReviewIndicatorProps } from '../ReviewIndicator'; import type { SwatchItemType, SwatchesProps } from '../Swatches'; export interface ProductItemProps extends CommerceTypes.Product { style?: StyleProp; contentStyle?: StyleProp; titleStyle?: StyleProp; brandStyle?: StyleProp; imageStyle?: StyleProp; imageContainerStyle?: StyleProp; onPress: () => void; priceStyle?: StyleProp; originalPriceStyle?: StyleProp; salePriceStyle?: StyleProp; promoContainerStyle?: StyleProp; promoStyle?: StyleProp; variantText?: string; variantTextStyle?: StyleProp; reviewStyle?: StyleProp; reviewCountStyle?: StyleProp; reviewIndicatorProps?: Partial; extraElement?: JSX.Element; swatchItems?: SwatchItemType[]; swatchStyle?: StyleProp; swatchesProps?: SwatchesProps; /** * @deprecated you probably want FSCommerce's "promotions" */ promos?: string[]; /** * @deprecated you probably want FSCommerce's "images" */ image?: ImageURISource; /** * @deprecated you probably want FSCommerce's "reviews" */ reviewValue?: number; /** * @deprecated you probably want FSCommerce's "reviews" */ reviewCount?: number; showReviewCount?: boolean; buttonText?: string; buttonStyle?: StyleProp; buttonTextStyle?: StyleProp; buttonProps?: Partial; onButtonPress?: () => void; renderButton?: () => React.ReactNode; onFavButtonPress?: () => void; favButtonImage?: ImageURISource; renderFavButton?: () => React.ReactNode; renderPrice?: () => React.ReactNode; renderPromos?: () => React.ReactNode; renderTitle?: () => React.ReactNode; renderVariantText?: () => React.ReactNode; renderBrand?: () => React.ReactNode; renderImage?: () => React.ReactNode; renderReviews?: () => React.ReactNode; renderSwatches?: () => React.ReactNode; hidePrice?: boolean; hidePromos?: boolean; hideTitle?: boolean; hideVariantText?: boolean; hideBrand?: boolean; hideImage?: boolean; hideReviews?: boolean; hideSwatches?: boolean; hideButton?: boolean; orientation?: 'horizontal' | 'vertical'; } export declare class ProductItem extends Component { render(): JSX.Element; }