/** @module @airtable/blocks/ui: ChoiceToken */ /** */
import * as PropTypes from 'prop-types';
import * as React from 'react';
import { Color } from '../colors';
import { FlexItemSetProps, PositionSetProps, MarginProps } from './system';
import { TooltipAnchorProps } from './types/tooltip_anchor_props';
/**
 * Style props for the {@link ChoiceToken} component. Accepts:
 * * {@link FlexItemSetProps}
 * * {@link MarginProps}
 * * {@link PositionSetProps}
 *
 * @noInheritDoc
 */
interface ChoiceTokenStyleProps extends FlexItemSetProps, PositionSetProps, MarginProps {
}
export declare const choiceTokenStylePropTypes: {
    [x: string]: PropTypes.Validator<any>;
};
/** An option from a select field. You should not create these objects from scratch, but should instead grab them from base data. */
interface ChoiceOption {
    /** The ID of the select option. */
    id?: string;
    /** The name of the select option. */
    name: string;
    /** The color of the select option. */
    color?: Color;
}
/**
 * Props for the {@link ChoiceToken} component. Also accepts:
 * * {@link ChoiceTokenStyleProps}
 *
 * @docsPath UI/components/ChoiceToken
 * @noInheritDoc
 */
interface ChoiceTokenProps extends ChoiceTokenStyleProps, TooltipAnchorProps {
    /** An object representing a select option. You should not create these objects from scratch, but should instead grab them from base data. */
    choice: ChoiceOption;
    /** Additional styles to apply to the choice token. */
    style?: React.CSSProperties;
    /** Additional class names to apply to the choice token. */
    className?: string;
}
/**
 * A component that shows a single choice in a small token, to be displayed inline or in a list of choices.
 *
 * [[ Story id="choicetoken--example" title="Choice token example" ]]
 *
 * @component
 * @docsPath UI/components/ChoiceToken
 */
declare const ChoiceToken: {
    (props: ChoiceTokenProps): JSX.Element;
    propTypes: {
        onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
        onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
        onClick: PropTypes.Requireable<(...args: any[]) => any>;
        hasOnClick: PropTypes.Requireable<boolean>;
        choice: PropTypes.Validator<PropTypes.InferProps<{
            id: PropTypes.Requireable<string>;
            name: PropTypes.Validator<string>;
            color: PropTypes.Requireable<string>;
        }>>;
        style: PropTypes.Requireable<object>;
        className: PropTypes.Requireable<string>;
    };
};
export default ChoiceToken;
