/// <reference types="react" />
declare type BoolConfigVal = false | true;
declare type IsVisible = 0 | 1;
declare type SkuDisplayMode = 'display_a1' | 'display_a2' | 'display_a5' | 'display_a9' | 'display_custom';
declare type SkuLayoutDirection = 'row' | 'column';
declare type SkuImageSlotPosition = 'left_top' | 'left_bottom' | 'right_top' | 'right_bottom';
declare type SkuActionType = 'icon' | 'radio' | 'checkbox' | 'button';
declare type SkuExtraStepperSize = 'large' | 'small';
declare type SkuFavoritePosition = 'left_top' | 'left_bottom' | 'right_top' | 'right_bottom';
declare type SkuTagsSize = 'small' | 'medium' | 'large';
export interface SkuCardConfig {
    displayMode?: SkuDisplayMode;
    layoutDirection?: SkuLayoutDirection;
    background?: string;
    paddingY?: number;
    paddingX?: number;
    marginY?: number;
    marginX?: number;
    radius?: number;
    isBorderVisible?: BoolConfigVal;
    borderWidth?: number;
    borderColor?: string;
    isStatusOverlayVisible?: boolean;
    statusOverlayText?: string;
    isFoldable?: BoolConfigVal;
    slot?: React.ReactNode;
}
export interface SkuImageConfig {
    isCover?: BoolConfigVal;
    width?: string;
    height?: string;
    isTextFallback?: BoolConfigVal;
    background?: string;
    radius?: number;
    textFontSize?: number | string;
    slot?: React.ReactNode;
    slotPosition?: SkuImageSlotPosition;
}
export interface SkuProductNameConfig {
    isOpen?: BoolConfigVal;
    value?: string;
    fontSize?: number;
    fontWeight?: number;
    color?: string;
    ellipsisCount?: number;
}
export interface SkuProductSubtitleConfig {
    isOpen?: BoolConfigVal;
    value?: any;
    fontSize?: number;
    fontWeight?: number;
    color?: string;
    ellipsisCount?: number;
}
export interface SkuProductPriceConfig {
    isOpen?: BoolConfigVal;
    isPrice?: BoolConfigVal;
    priceFontSize?: number;
    priceFontWeight?: number;
    priceColor?: string;
    isShowZeroPrice?: BoolConfigVal;
    isShowFreePrice?: BoolConfigVal;
    isOriginPrice?: BoolConfigVal;
    originPriceFontSize?: number;
    originPriceFontWeight?: number;
    originPriceColor?: string;
    isTaxPrice?: BoolConfigVal;
    isCustomText?: BoolConfigVal;
    customTextType?: string;
    customTextValue?: number;
    customTextMinValue?: number;
    customTextMaxValue?: number;
    isMiniPrice?: BoolConfigVal;
}
export interface SkuProductStockConfig {
    isOpen?: BoolConfigVal;
    fontSize?: number;
    fontWeight?: number;
    color?: string;
    customText?: React.ReactNode;
}
export interface SkuProductCapacityConfig {
    isOpen?: BoolConfigVal;
    fontSize?: number;
    fontWeight?: number;
    color?: string;
    customText?: React.ReactNode;
}
export interface SkuProductCountdownConfig {
    isOpen?: BoolConfigVal;
    fontSize?: number;
    fontWeight?: number;
    color?: string;
    customText?: React.ReactNode;
}
export interface SkuProductMemberPriceConfig {
    isOpen?: BoolConfigVal;
    isMemberPrice?: BoolConfigVal;
    fontSize?: number;
    fontWeight?: number;
    color?: string;
    isIndicator?: BoolConfigVal;
    indicatorBackground?: string;
    indicatorPaddingY?: number;
    indicatorPaddingX?: number;
    indicatorMarginX?: number;
    indicatorRadius?: number;
    isIndicatorBorder?: BoolConfigVal;
    indicatorBorderWidth?: number;
    indicatorBorderColor?: string;
    indicatorFontSize?: number;
    indicatorFontWeight?: number;
    indicatorColor?: string;
    indicatorIcon?: React.ReactNode;
    customText?: React.ReactNode;
}
export interface SkuDurationConfig {
    isOpen?: BoolConfigVal;
    fontSize?: number;
    fontWeight?: number;
    color?: string;
    customText?: React.ReactNode;
}
export interface SkuTimeConfig {
    isOpen?: BoolConfigVal;
    fontSize?: number;
    fontWeight?: number;
    color?: string;
    customText?: React.ReactNode;
}
export interface SkuResourceConfig {
    isOpen?: BoolConfigVal;
    fontSize?: number;
    fontWeight?: number;
    color?: string;
    customText?: React.ReactNode;
}
export interface SkuTextConfig {
    paddingY?: number;
    justifyContent?: string;
    alignItems?: string;
    slot?: React.ReactNode;
}
export interface SkuActionIconMethod {
    icon?: React.ReactNode;
    background?: string;
    paddingY?: number;
    paddingX?: number;
    radius?: number;
    isBorder?: BoolConfigVal;
    borderWidth?: number;
    borderColor?: string;
}
export interface SkuActionButtonMethod {
    text?: string;
    fontSize?: number;
    fontWeight?: number;
    color?: string;
    background?: string;
    paddingY?: number;
    paddingX?: number;
    radius?: number;
    isBorder?: BoolConfigVal;
    borderWidth?: number;
    borderColor?: string;
}
export interface SkuActionConfig {
    isOpen?: BoolConfigVal;
    method?: SkuActionType;
    iconMethod?: SkuActionIconMethod;
    radioMethod?: SkuActionIconMethod;
    checkboxMethod?: SkuActionButtonMethod;
    buttonMethod?: SkuActionButtonMethod;
    slot?: React.ReactNode;
}
export interface SkuExtraConfig {
    isOpen?: BoolConfigVal;
    isStepper?: BoolConfigVal;
    stepperSize?: SkuExtraStepperSize;
    stepperColor?: string;
    isFavorite?: BoolConfigVal;
    favoritePosition?: SkuFavoritePosition;
    favoriteIcon?: React.ReactNode;
    favoriteBackground?: string;
    favoritePaddingY?: number;
    favoritePaddingX?: number;
    favoriteRadius?: number;
    isFavoriteBorder?: BoolConfigVal;
    favoriteBorderWidth?: number;
    favoriteBorderColor?: string;
    isTooltipTag?: BoolConfigVal;
    isTooltipTagSlot?: any;
}
export interface SkuTagsGroupConfig {
    title?: any;
    background?: string;
    paddingY?: number;
    paddingX?: number;
    radius?: number;
    isBorder?: BoolConfigVal;
    borderWidth?: number;
    borderColor?: string;
    fontSize?: number;
    fontWeight?: number;
    color?: string;
}
export interface SkuTagsConfig {
    isOpen?: BoolConfigVal;
    lists?: SkuTagsGroupConfig[];
    marginX?: number;
    size?: SkuTagsSize;
    isShowAll?: BoolConfigVal;
    maxCount?: number;
}
export interface SkuPromotionsGroupConfig {
    title?: any;
    background?: string;
    paddingY?: number;
    paddingX?: number;
    radius?: number;
    isBorder?: BoolConfigVal;
    borderWidth?: number;
    borderColor?: string;
    fontSize?: number;
    fontWeight?: number;
    color?: string;
}
export interface SkuPromotionsConfig {
    isOpen?: BoolConfigVal;
    lists?: SkuPromotionsGroupConfig[];
    marginX?: number;
    size?: SkuTagsSize;
    isShowAll?: BoolConfigVal;
    maxCount?: number;
}
export interface SkuStatusOverlayConfig {
    isOpen?: BoolConfigVal;
    fontSize?: number;
    fontWeight?: number;
    color?: string;
    text?: string;
    background?: string;
    slot?: React.ReactNode;
}
export interface SkuTextWrapConfig {
    infoConfig?: SkuTextConfig;
    skuNameConfig?: SkuProductNameConfig;
    skuSubtitleConfig?: SkuProductSubtitleConfig;
    skuPriceConfig?: SkuProductPriceConfig;
    skuStockConfig?: SkuProductStockConfig;
    skuCapacityConfig?: SkuProductCapacityConfig;
    skuCountdownConfig?: SkuProductCountdownConfig;
    skuMemberPriceConfig?: SkuProductMemberPriceConfig;
    skuDurationConfig?: SkuDurationConfig;
    skuTimeConfig?: SkuTimeConfig;
    skuResourceConfig?: SkuResourceConfig;
    skuTagsConfig?: SkuTagsConfig;
    skuPromotionsConfig?: SkuPromotionsConfig;
}
export interface DataSourceConfig {
    title?: string;
    subtitle?: string;
    cover?: string;
    price?: number;
    original_price?: number | string;
    tax_fee?: number | string;
    stock?: number;
    capacity?: number;
    countdown?: number | string;
    member_price?: number;
    duration?: number;
    time?: string;
    resource?: string;
    sortKeys?: string[];
    warning_lists?: string[];
    promotions?: any[];
    resources?: string;
    stock_quantity?: number;
    is_track?: IsVisible;
    tags?: any[];
    tooltip_tags?: any[];
    className?: string;
    [key: string]: any;
}
export interface ProductCardConfig {
    dataSource?: DataSourceConfig;
    skuCardConfig?: SkuCardConfig;
    skuImageConfig?: SkuImageConfig;
    skuTextConfig?: SkuTextWrapConfig;
    skuActionConfig?: SkuActionConfig;
    skuExtraConfig?: SkuExtraConfig;
    skuStatusOverlayConfig?: SkuStatusOverlayConfig;
    className?: string;
    onCardClick?: (item: any, extParams?: any) => void;
    onFavorite?: (item: any, extParams?: any) => void;
    onAction?: (item: any, extParams?: any) => void;
    [key: string]: any;
}
export {};
