import React, { PureComponent } from 'react';
import { CommerceTypes } from '@brandingbrand/fscommerce';
import { ImageStyle, ImageURISource, StyleProp, TextStyle, ViewStyle } from 'react-native';
export declare type CartItemUpdateQuantityFunction = (item: CommerceTypes.CartItem, qty: number) => Promise<void>;
export declare type CartItemRemoveFunction = (item: CommerceTypes.CartItem) => Promise<void>;
export declare type CartItemRenderFunction = (item: CommerceTypes.CartItem, updateQty: CartItemUpdateQuantityFunction, remove: CartItemRemoveFunction) => React.ReactNode;
export interface CartItemProps extends CommerceTypes.CartItem {
    removeItem: CartItemRemoveFunction;
    updateQty: CartItemUpdateQuantityFunction;
    renderDetails?: CartItemRenderFunction;
    renderStepper?: CartItemRenderFunction;
    stepperStyle?: StyleProp<ViewStyle>;
    renderRemoveButton?: CartItemRenderFunction;
    removeButtonStyle?: StyleProp<ViewStyle>;
    removeButtonTextStyle?: StyleProp<TextStyle>;
    imageHeight?: number;
    imageWidth?: number;
    onImagePress?: (item: CommerceTypes.CartItem) => void;
    renderPromo?: CartItemRenderFunction;
    style?: StyleProp<ViewStyle>;
    leftColumnStyle?: StyleProp<ViewStyle>;
    rightColumnStyle?: StyleProp<ViewStyle>;
    quantityRowStyle?: StyleProp<ViewStyle>;
}
export interface CartItemState {
    image?: ImageURISource;
    imageStyle: StyleProp<ImageStyle>;
}
export declare class CartItem extends PureComponent<CartItemProps, CartItemState> {
    static defaultProps: Partial<CartItemProps>;
    static getDerivedStateFromProps(nextProps: CartItemProps, prevState: CartItemState): Partial<CartItemState> | null;
    state: CartItemState;
    render(): React.ReactNode;
    private renderRemoveButton;
    private renderImage;
    private handleIncrease;
    private handleDecrease;
    private handleRemove;
    private handleImagePress;
}
