import React, { ReactNode } from 'react'; import { ButtonSize } from '../lib/theme/variants/button'; import { ContainerProps } from './Container'; import { StyledButtonProps } from './StyledButton'; type StyledButtonSetProps = Omit & { /** A list of elements to build buttons upon */ items: Array; /** Button child content renderer. Get passed an object like { item, isSelected } */ children: ({ item, isSelected }: { item: T; isSelected: boolean; }) => ReactNode; /** Based on the design system theme */ size?: ButtonSize; /** Currently selected item */ selected?: T; /** An optional func called with the new item when option changes */ onChange?: (item: T) => void; /** Disable user input */ disabled?: boolean; /** Similar to `buttonProps` but allow props to be added dynamically based on item */ buttonPropsBuilder?: ({ item, index, isSelected, }: { item: T; index: number; isSelected: boolean; }) => StyledButtonProps; /** Button Props */ buttonProps?: StyledButtonProps; customBorderRadius?: string; }; declare const StyledButtonSet: ({ size, items, children, selected, buttonProps, buttonPropsBuilder, onChange, disabled, customBorderRadius, ...props }: StyledButtonSetProps) => React.JSX.Element; export default StyledButtonSet;