import React, { ForwardRefExoticComponent } from 'react'; import { ResponsiveProp } from '../../types'; import { BoxProps } from '../Box/Box'; interface Option { id: string; value: string; label: string; disabled?: boolean; error?: boolean | string; render?: (option: { id: string; value: string; label: string; disabled?: boolean; }) => React.ReactNode; } export interface OptionTileGroupProps extends BoxProps { /** * Option group name (to be passed to either radio or checkbox inputs) */ name: string; /** * Change event. */ onChange: (event: React.ChangeEvent | React.MouseEvent) => void; /** * Options to display */ options: Option[]; /** * Value of selected option(s). */ value: null | string | number | (string | number)[]; /** * Direction (flex direction) for option tiles. */ direction?: 'row' | 'column' | ResponsiveProp<'row' | 'column'>; /** * Description to be displayed below the title, and above the RadioGroup. */ description?: React.ReactNode; /** * Error state or error message for the option group. */ error?: boolean | string; /** * Whether the tile shows a radio/checkbox. Note that the true input is always hidden (accessibly). This prop * hides the custom component which is the visual indicator of checked/selected state. */ hideInput?: boolean; /** * Make tiles take up 100% of their container. */ isFullWidth?: boolean; /** * Whether user can select multiple options. Input will be rendered as checkboxes if set to `true`. */ isMulti?: boolean; /** * The required and aria-required attributes on each option */ isRequired?: boolean; /** * Visual indicator that the field is required, that gets appended to the label */ requiredIndicator?: React.ReactNode; /** * Title to be displayed above the Option Group. */ title?: React.ReactNode; } export declare const OptionTileGroup: ForwardRefExoticComponent; export {};