import { default as React } from 'react';
export interface CartLineItemData {
    productId: string;
    title: string;
    quantity: number;
    pricePerUnitIncVat: number;
    vatAmount: number;
    lineTotalIncVat: number;
    currency: string;
}
export interface CartLineItemProps {
    /** Line item data */
    item: CartLineItemData;
    /** Locale for price formatting */
    locale: string;
    /** Format price function */
    formatPrice: (amount: number, currency: string, locale: string) => string;
    /** Whether to show quantity controls */
    showQuantityControls?: boolean;
    /** Quantity change handler */
    onQuantityChange?: (productId: string, quantity: number) => void;
    /** Remove handler */
    onRemove?: (productId: string) => void;
    /** Test ID prefix */
    testIdPrefix?: string;
    /** Quantity field component (optional for customization) */
    QuantityField?: React.ComponentType<{
        value: number;
        minValue: number;
        onChange: (value: number) => void;
        decrementAriaLabel: string;
        incrementAriaLabel: string;
        'aria-label': string;
        testId?: string;
    }>;
}
/**
 * CartLineItem - Display a single cart line item with optional quantity controls
 *
 * @example
 * ```tsx
 * import { CartLineItem } from '@eventuras/ratio-ui/commerce/CartLineItem';
 * import { formatPrice } from '@eventuras/core/currency';
 * import { NumberField } from '@eventuras/ratio-ui/forms';
 *
 * <CartLineItem
 *   item={lineItem}
 *   locale="nb"
 *   formatPrice={formatPrice}
 *   showQuantityControls
 *   onQuantityChange={(id, qty) => updateCart(id, qty)}
 *   onRemove={(id) => removeFromCart(id)}
 *   QuantityField={NumberField}
 * />
 * ```
 */
export declare const CartLineItem: React.FC<CartLineItemProps>;
//# sourceMappingURL=CartLineItem.d.ts.map