import React from 'react';
import type { EnhancedModifierGroup } from '../services/types.js';
import { type AsChildChildren } from '@wix/headless-utils/react';
export interface ModifierGroupRootProps {
modifierGroup?: EnhancedModifierGroup;
children: React.ReactNode;
}
/**
* Root component that provides modifier group context to its children.
*
* @warning Do not use this component directly if it's inside a repeater.
* Use the repeater component (e.g., Item.ModifierGroupsRepeater) instead, which will
* automatically render this Root component for each modifier group.
*/
export declare const Root: (props: ModifierGroupRootProps) => import("react/jsx-runtime").JSX.Element | null;
export interface ModifierGroupNameProps {
/** Whether to render as a child component */
asChild?: boolean;
/** Custom render function when using asChild */
children?: AsChildChildren<{
name: string;
}>;
/** CSS classes to apply to the default element */
className?: string;
}
export interface ModifierGroupModifiersRepeaterProps {
children: React.ReactNode;
}
/**
* Displays the modifier group name with customizable rendering following the documented API.
*
* @component
* @example
* ```tsx
* // Default usage
*
*
* // asChild with primitive
*
*
*
*
* // asChild with react component
*
* {React.forwardRef(({name, ...props}, ref) => (
*
* {name}
*
* ))}
*
* ```
*/
export declare const Name: React.ForwardRefExoticComponent>;
export declare const ModifiersRepeater: {
(props: ModifierGroupModifiersRepeaterProps): import("react/jsx-runtime").JSX.Element | null;
displayName: string;
};
/**
* ModifierGroup namespace containing all modifier group components
* following the compound component pattern: ModifierGroupComponent.Root, ModifierGroupComponent.Name, ModifierGroupComponent.ModifiersRepeater
*/
export declare const ModifierGroupComponent: {
/** ModifierGroup root component */
readonly Root: (props: ModifierGroupRootProps) => import("react/jsx-runtime").JSX.Element | null;
/** ModifierGroup name component */
readonly Name: React.ForwardRefExoticComponent>;
/** ModifierGroup modifiers repeater component */
readonly ModifiersRepeater: {
(props: ModifierGroupModifiersRepeaterProps): import("react/jsx-runtime").JSX.Element | null;
displayName: string;
};
};