import React, { Component } from 'react';
import { ImageStyle, ImageURISource, StyleProp, TextStyle, ViewStyle } from 'react-native';
import { CommerceTypes } from '@brandingbrand/fscommerce';
import { ButtonProps } from '../Button';
import { ReviewIndicatorProps } from '../ReviewIndicator';
import { SwatchesProps, SwatchItemType } from '../Swatches';
export interface ProductItemProps extends CommerceTypes.Product {
    style?: StyleProp<ViewStyle>;
    contentStyle?: StyleProp<ViewStyle>;
    titleStyle?: StyleProp<TextStyle>;
    brandStyle?: StyleProp<TextStyle>;
    imageStyle?: StyleProp<ImageStyle>;
    imageContainerStyle?: StyleProp<ViewStyle>;
    onPress: () => void;
    priceStyle?: StyleProp<TextStyle>;
    originalPriceStyle?: StyleProp<TextStyle>;
    salePriceStyle?: StyleProp<TextStyle>;
    promoContainerStyle?: StyleProp<ViewStyle>;
    promoStyle?: StyleProp<TextStyle>;
    variantText?: string;
    variantTextStyle?: StyleProp<TextStyle>;
    reviewStyle?: StyleProp<ViewStyle>;
    reviewCountStyle?: StyleProp<TextStyle>;
    reviewIndicatorProps?: ReviewIndicatorProps;
    extraElement?: JSX.Element;
    swatchItems?: SwatchItemType[];
    swatchStyle?: StyleProp<ViewStyle>;
    swatchesProps?: SwatchesProps;
    promos?: string[];
    image?: ImageURISource;
    reviewValue?: number;
    reviewCount?: number;
    showReviewCount?: boolean;
    buttonText?: string;
    buttonStyle?: StyleProp<ViewStyle>;
    buttonTextStyle?: StyleProp<TextStyle>;
    buttonProps?: Partial<ButtonProps>;
    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?: 'vertical' | 'horizontal';
}
export declare class ProductItem extends Component<ProductItemProps> {
    render(): JSX.Element;
}
