import { SearchResultDTO, ImageDTO, MoneyDTO, ReviewRatingStatisticsDTO, OfferDTO } from '@sentecacommerce/sdk';
export interface BaseProductType {
    name: string;
    slug: string;
    variantId: string;
    offerId?: string;
    offer?: OfferDTO;
    collapseKey?: string;
    sku: string;
    images?: ImageDTO[];
    inventory: {
        hasAvailableQuantity: boolean;
        availableQuantity: number;
        maxQuantity?: number;
    };
    onMouseEnter: (callback: () => void) => void;
    onMouseLeave: () => void;
    onMouseDown: (callback: () => void) => void;
}
export interface AttributeType {
    _id: string;
    label: string;
    extra?: any;
}
export interface AttributesType {
    count: number;
    elements: AttributeType[];
}
interface LineItemType extends BaseProductType {
    name: string;
    brand?: {
        name: string;
        slug: string;
    };
    _id: string;
    labels?: string[];
    price?: MoneyDTO;
    discountedPrice?: MoneyDTO;
    variantOptions: number;
    variantsCount: number;
    ratings: ReviewRatingStatisticsDTO;
    getAttributeByKey: (key: string) => AttributesType;
    getCustomFieldByKey: (key: string) => any;
}
export declare const useLineItem: (props: SearchResultDTO) => LineItemType;
export {};
