import React from 'react'; import type { ReactNode } from 'react'; import type { GenerateSemantic } from '../_util/hooks/useMergeSemantic/semanticType'; export type CheckableTagOption = { value: CheckableTagValue; label: ReactNode; className?: string; style?: React.CSSProperties; }; interface CheckableTagGroupSingleProps { multiple?: false; value?: CheckableTagValue | null; defaultValue?: CheckableTagValue | null; onChange?: (value: CheckableTagValue | null) => void; } interface CheckableTagGroupMultipleProps { multiple: true; value?: CheckableTagValue[]; defaultValue?: CheckableTagValue[]; onChange?: (value: CheckableTagValue[]) => void; } export type CheckableTagGroupSemanticType = { classNames?: { root?: string; item?: string; }; styles?: { root?: React.CSSProperties; item?: React.CSSProperties; }; }; export type CheckableTagGroupSemanticAllType = GenerateSemantic>; type CheckableTagGroupBaseProps = { prefixCls?: string; rootClassName?: string; options?: (CheckableTagOption | CheckableTagValue)[]; disabled?: boolean; } & (CheckableTagGroupSingleProps | CheckableTagGroupMultipleProps) & Pick, 'className' | 'style' | 'id' | 'role'> & { [key: `data-${string}`]: any; [key: `aria-${string}`]: any; }; export type CheckableTagGroupProps = CheckableTagGroupBaseProps & { classNames?: CheckableTagGroupSemanticAllType['classNamesAndFn']; styles?: CheckableTagGroupSemanticAllType['stylesAndFn']; }; export interface CheckableTagGroupRef { nativeElement: HTMLDivElement; } declare const CheckableTagGroup: ((props: CheckableTagGroupProps & { ref?: React.Ref; }) => React.ReactElement) & { displayName?: string; }; export default CheckableTagGroup;