import React from "react"; import * as PropTypes from "prop-types"; import { SelectOption, SelectOptionValue } from "./select_and_select_buttons_helpers"; import { MaxWidthProps, MinWidthProps, WidthProps, FlexItemSetProps, PositionSetProps, MarginProps } from "./system"; import { TooltipAnchorProps } from "./types/tooltip_anchor_props"; import { ControlSizeProp } from "./control_sizes"; /** * Style props shared between the {@link SelectButtons} and {@link SelectButtonsSynced} components. Accepts: * * {@link FlexItemSetProps} * * {@link MarginProps} * * {@link MaxWidthProps} * * {@link MinWidthProps} * * {@link PositionSetProps} * * {@link WidthProps} * * @noInheritDoc */ export interface SelectButtonsStyleProps extends MaxWidthProps, MinWidthProps, WidthProps, FlexItemSetProps, PositionSetProps, MarginProps { } export declare const selectButtonsStylePropTypes: { [x: string]: PropTypes.Validator; }; /** * Props shared between the {@link SelectButtons} and {@link SelectButtonsSynced} components. * * @noInheritDoc */ export interface SharedSelectButtonsProps extends SelectButtonsStyleProps, TooltipAnchorProps { /** The list of select options. */ options: Array; /** A function to be called when the selected option changes. */ onChange?: (value: SelectOptionValue) => void; /** If set to `true`, the user cannot interact with the select. */ disabled?: boolean; /** Additional class names to apply to the select. */ className?: string; /** The size of the select buttons. */ size?: ControlSizeProp; /** Additional styles to apply to the select. */ style?: React.CSSProperties; /** The `aria-label` attribute. Use this if the select is not referenced by a label element. */ ["aria-label"]?: string; /** A space separated list of label element IDs. */ ["aria-labelledby"]?: string; /** A space separated list of description element IDs. */ ["aria-describedby"]?: string; } export declare const sharedSelectButtonsPropTypes: { onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>; onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>; onClick: PropTypes.Requireable<(...args: any[]) => any>; hasOnClick: PropTypes.Requireable; options: PropTypes.Validator; label: PropTypes.Validator; disabled: PropTypes.Requireable; }>[]>; onChange: PropTypes.Requireable<(...args: any[]) => any>; disabled: PropTypes.Requireable; size: PropTypes.Validator; className: PropTypes.Requireable; style: PropTypes.Requireable; "aria-labelledby": PropTypes.Requireable; "aria-describedby": PropTypes.Requireable; }; /** * Props for the {@link SelectButtons} component. Also accepts: * * {@link SelectButtonsStyleProps} * * @docsPath UI/components/SelectButtons */ interface SelectButtonsProps extends SharedSelectButtonsProps { /** The value of the selected option. */ value: SelectOptionValue; } declare const ForwardedRefSelectButtons: React.ForwardRefExoticComponent>; export default ForwardedRefSelectButtons;