/** @module @airtable/blocks/ui: TextButton */ /** */
import * as React from 'react';
import * as PropTypes from 'prop-types';
import { EnumType } from '../private_utils';
import { AriaProps } from './types/aria_props';
import { OptionalResponsiveProp } from './system/utils/types';
import { MaxWidthProps, MinWidthProps, WidthProps, FlexItemSetProps, PositionSetProps, SpacingSetProps } from './system';
import { TextSizeProp } from './text';
import { IconName } from './icon_config';
import { TooltipAnchorProps } from './types/tooltip_anchor_props';
import { DataAttributesProp } from './types/data_attributes_prop';
/**
 * Style props for the {@link TextButton} component. Also accepts:
 * * {@link FlexItemSetProps}
 * * {@link MaxWidthProps}
 * * {@link MinWidthProps}
 * * {@link PositionSetProps}
 * * {@link SpacingSetProps}
 * * {@link WidthProps}
 *
 * @noInheritDoc
 */
export interface TextButtonStyleProps extends MaxWidthProps, MinWidthProps, WidthProps, FlexItemSetProps, PositionSetProps, SpacingSetProps {
    /** Defines the display type of an element, which consists of the two basic qualities of how an element generates boxes — the outer display type defining how the box participates in flow layout, and the inner display type defining how the children of the box are laid out. */
    display?: OptionalResponsiveProp<'inline-flex' | 'flex' | 'none'>;
}
export declare const textButtonStylePropTypes: {
    display: PropTypes.Validator<any>;
};
/**
 * Variants for the {@link TextButton} component:
 *
 * • **default**
 *
 * Blue text.
 *
 * • **dark**
 *
 * Dark gray text.
 *
 * • **light**
 *
 * Light gray text.
 */
declare type TextButtonVariant = EnumType<typeof TextButtonVariant>;
declare const TextButtonVariant: {
    default: "default";
    dark: "dark";
    light: "light";
};
/**
 * Props for the {@link TextButton} component. Also supports:
 * * {@link AriaProps}
 * * {@link TextButtonStyleProps}
 *
 * @noInheritDoc
 * @docsPath UI/components/TextButton
 */
interface TextButtonProps extends TooltipAnchorProps<HTMLSpanElement>, AriaProps, TextButtonStyleProps {
    /** The size of the button. Defaults to `default`. Can be a responsive prop object. */
    size?: TextSizeProp;
    /** The variant of the button, which defines the color. Defaults to `default`. */
    variant?: TextButtonVariant;
    /** The name of the icon or a react node. For more details, see the {@link IconName|list of supported icons}. */
    icon?: IconName | React.ReactElement;
    /** Indicates whether or not the user can interact with the button. */
    disabled?: boolean;
    /** The contents of the button. */
    children?: React.ReactNode | string;
    /** Click event handler. Also handles Space and Enter keypress events. */
    onClick?: (e: React.MouseEvent<HTMLSpanElement> | React.KeyboardEvent<HTMLSpanElement>) => unknown;
    /** The `id` attribute. */
    id?: string;
    /** The `tabIndex` attribute. */
    tabIndex?: number;
    /** Additional class names to apply, separated by spaces. */
    className?: string;
    /** Additional styles. */
    style?: React.CSSProperties;
    /** Data attributes that are spread onto the element, e.g. `dataAttributes={{'data-*': '...'}}`. */
    dataAttributes?: DataAttributesProp;
    /** The `aria-selected` attribute. */
    ['aria-selected']?: boolean;
}
declare const ForwardedRefTextButton: React.ForwardRefExoticComponent<TextButtonProps & React.RefAttributes<HTMLSpanElement>>;
export default ForwardedRefTextButton;
