import { ForwardRefExoticComponent, PropsWithoutRef, ReactNode } from 'react';
import { BadgeVariant } from '../../badge/src/badge';
import { CardHeadingButtonProps, CardHeadingLinkProps, CardHeadingNonInteractiveProps, CardProps } from '../../card/src/card';
import { HeadingTagType } from '../../heading/src/heading';
import { Colors } from './colors';
import { Price } from './price';
import { ProductHeader } from './product-header';
import { StockStatus, StockStatusVariants } from './stock-status';
export type { StockStatusVariants } from './stock-status';
export type ProductCardProps = Omit<CardProps, "children"> & (CardHeadingLinkProps | CardHeadingButtonProps | CardHeadingNonInteractiveProps) & {
    /**
     * The text that will be in the badge in the top right corner of the card. This is coupled with the badgeVariant prop. Both needs to be set for the badge to be displayed.
     */
    badgeText?: string;
    /**
     * The variant (color) of the badge in the top right corner of the card. This is coupled with the badgeText prop. Both needs to be set for the badge to be displayed.
     */
    badgeVariant?: BadgeVariant;
    /**
     * This is the descriptive text about the product displayed under the product name.
     */
    bodyText?: string;
    /**
     * ReactNode in the default slot under the feature list
     */
    children?: ReactNode;
    /**
     * This is the color dots informing the customers about the available colors. Send in a list of colors e.g. ["#000000", "#F0E68C", "#B0C4DE", "#EFD9F4"].
     */
    colorVariants?: string[];
    colorNames?: string[];
    colorListAriaLabel?: string;
    ctaText?: string;
    /**
     * Determine if the card should take up the full height of the parent. Useful for getting equal height cards when used in a flex grid. Defaults to true.
     */
    fullHeight?: boolean;
    /**
     * Any ReactElement that you want to put in under the price.
     */
    footerContent?: ReactNode;
    /**
     * This is the heading tag used for the product name in the card. Defaults to h2.
     */
    headingTag?: HeadingTagType;
    /**
     * This is the feature list where each entry is preceded by a checkmark.
     */
    listItems?: string[];
    /**
     * This is a loading flag used when using the product card as a button (not setting a href). This is so that the user can do some work in the clickHandler and display a loading state in the card. Defaults to false.
     */
    loading?: boolean;
    /**
     * This is the text above the product name. Used to for example render the product brand name.
     */
    overline?: string;
    /**
     * The actual price the customer will pay without the "from"-prefix. E.g. "799 kr/mån"
     */
    priceText?: string;
    /**
     * Here you can type additional information that will be displayed below the price. E.g. "VAT excluded"
     */
    priceDescription?: string;
    /**
     * The first part of the price text before the actual price. E.g. From 799kr/mån. It's the "From" part.
     */
    pricePrefix?: string;
    /**
     * Provide an image to be displayed at the top of the card. The image container height is set to --purpur-spacing-1600 (128px). So try not to use to big images. The image in the example is 100px width and 128px height giving ~4:5 aspect ratio.
     */
    image?: ReactNode;
    imageSize?: "sm" | "md" | "lg";
    /**
     * The name of the product.
     */
    title: string;
    /**
     * This is used if there is a discount. The priceText will receive additional styling if this field is set. E.g. Regular price 999 kr/mån
     */
    regularPriceText?: string;
    /**
     * Use this to display the stock status. It has three statuses. in-stock, back-in-stock and not-in-stock. This is to be used together with stockStatus text to display stock status.
     */
    stockStatus?: StockStatusVariants;
    /**
     * The text for stock status. Could be e.g "In stock", "Back in stock 2024-08-11" or "Not in stock".
     */
    stockStatusText?: string;
};
type ProductCardStatic = {
    Colors: typeof Colors;
    Price: typeof Price;
    ProductHeader: typeof ProductHeader;
    StockStatus: typeof StockStatus;
};
type ProductCardComponent = ForwardRefExoticComponent<PropsWithoutRef<ProductCardProps>> & ProductCardStatic;
export declare const ProductCard: ProductCardComponent;
//# sourceMappingURL=product-card.d.ts.map