import { ElementType, ForwardRefExoticComponent, HTMLAttributes, RefAttributes } from 'react';
import { ResponsiveStyleValue } from 'theme-ui';
import { FontFamily, FontSize, FontWeight, LetterSpacing, LineHeight, Shadow, SxColor } from '../../tokens';
export type TextProps = {
    /** Element type to render. Defaults to `div`, or to `span` if `inline` is `true`. Can also be set to `child` to not render an element at all, applying the text styles to the child element instead. */
    as?: ElementType | 'child';
    /** Whether `display` should be `inline` instead of the default for the element specified in `as`. */
    inline?: ResponsiveStyleValue<boolean>;
    /** Color of the text. Inherited by default. */
    color?: ResponsiveStyleValue<SxColor>;
    /** Font family. Inherited by default. */
    font?: ResponsiveStyleValue<keyof typeof FontFamily>;
    /** Font weight. Inherited by default. */
    weight?: ResponsiveStyleValue<keyof typeof FontWeight>;
    /** Whether the text should be italic. Inherited by default. */
    italic?: ResponsiveStyleValue<boolean>;
    /** Whether to enable ligatures. Inherited by default. */
    ligatures?: ResponsiveStyleValue<boolean>;
    /** Font size. Inherited by default. */
    size?: ResponsiveStyleValue<keyof typeof FontSize>;
    /** Line height or leading. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    lineHeight?: ResponsiveStyleValue<keyof typeof LineHeight>;
    /** Letter spacing or tracking. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    letterSpacing?: ResponsiveStyleValue<keyof typeof LetterSpacing>;
    /** Whether to render the text in UPPERCASE. Inherited by default. */
    uppercase?: ResponsiveStyleValue<boolean>;
    /** Text shadow. Inherited by default. */
    shadow?: ResponsiveStyleValue<keyof typeof Shadow>;
    /** Text alignment. Inherited by default. */
    align?: ResponsiveStyleValue<'left' | 'center' | 'right' | 'justify'>;
    /** Whether to hyphenate the text when it wraps across multiple lines. Inherited by default. */
    hyphens?: ResponsiveStyleValue<boolean>;
    /** If `boolean`, whether to force the text to be on a single line, truncating it with an ellipsis (…) if needed. If `number`, truncate the text after that number of lines. Defaults to `false`. */
    truncate?: ResponsiveStyleValue<boolean | number>;
} & Omit<HTMLAttributes<HTMLElement>, 'color'>;
/**
 * Renders a `div` or a `span`, depending on the `inline` prop. The `as` prop can also be used to customize the element.
 *
 * Variants are available as properties on the component, e.g. `Text.H96` renders a 96px heading (`h2` element),
 * `Text.P16` renders a 16px paragraph (`p` element), `Text.C10` renders a 10px uppercase caption,
 * `Text.M12` renders 12px monospace text, and `Text.Q24` renders a 24px quote (`blockquote` or `q` element,
 * depending on the `inline` prop).
 */
export declare const Text: ForwardRefExoticComponent<{
    /** Element type to render. Defaults to `div`, or to `span` if `inline` is `true`. Can also be set to `child` to not render an element at all, applying the text styles to the child element instead. */
    as?: ElementType | "child";
    /** Whether `display` should be `inline` instead of the default for the element specified in `as`. */
    inline?: ResponsiveStyleValue<boolean>;
    /** Color of the text. Inherited by default. */
    color?: ResponsiveStyleValue<SxColor>;
    /** Font family. Inherited by default. */
    font?: ResponsiveStyleValue<keyof typeof FontFamily>;
    /** Font weight. Inherited by default. */
    weight?: ResponsiveStyleValue<keyof typeof FontWeight>;
    /** Whether the text should be italic. Inherited by default. */
    italic?: ResponsiveStyleValue<boolean>;
    /** Whether to enable ligatures. Inherited by default. */
    ligatures?: ResponsiveStyleValue<boolean>;
    /** Font size. Inherited by default. */
    size?: ResponsiveStyleValue<keyof typeof FontSize>;
    /** Line height or leading. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    lineHeight?: ResponsiveStyleValue<keyof typeof LineHeight>;
    /** Letter spacing or tracking. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    letterSpacing?: ResponsiveStyleValue<keyof typeof LetterSpacing>;
    /** Whether to render the text in UPPERCASE. Inherited by default. */
    uppercase?: ResponsiveStyleValue<boolean>;
    /** Text shadow. Inherited by default. */
    shadow?: ResponsiveStyleValue<keyof typeof Shadow>;
    /** Text alignment. Inherited by default. */
    align?: ResponsiveStyleValue<"left" | "center" | "right" | "justify">;
    /** Whether to hyphenate the text when it wraps across multiple lines. Inherited by default. */
    hyphens?: ResponsiveStyleValue<boolean>;
    /** If `boolean`, whether to force the text to be on a single line, truncating it with an ellipsis (…) if needed. If `number`, truncate the text after that number of lines. Defaults to `false`. */
    truncate?: ResponsiveStyleValue<boolean | number>;
} & Omit<HTMLAttributes<HTMLElement>, "color"> & RefAttributes<HTMLElement>> & Record<"H" | "H64" | "H48" | "H32" | "H16" | "H96" | "H40" | "H24" | "H20" | "H18" | "H14" | "H12", ForwardRefExoticComponent<{
    /** Element type to render. Defaults to `div`, or to `span` if `inline` is `true`. Can also be set to `child` to not render an element at all, applying the text styles to the child element instead. */
    as?: ElementType | "child";
    /** Whether `display` should be `inline` instead of the default for the element specified in `as`. */
    inline?: ResponsiveStyleValue<boolean>;
    /** Color of the text. Inherited by default. */
    color?: ResponsiveStyleValue<SxColor>;
    /** Font family. Inherited by default. */
    font?: ResponsiveStyleValue<keyof typeof FontFamily>;
    /** Font weight. Inherited by default. */
    weight?: ResponsiveStyleValue<keyof typeof FontWeight>;
    /** Whether the text should be italic. Inherited by default. */
    italic?: ResponsiveStyleValue<boolean>;
    /** Whether to enable ligatures. Inherited by default. */
    ligatures?: ResponsiveStyleValue<boolean>;
    /** Font size. Inherited by default. */
    size?: ResponsiveStyleValue<keyof typeof FontSize>;
    /** Line height or leading. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    lineHeight?: ResponsiveStyleValue<keyof typeof LineHeight>;
    /** Letter spacing or tracking. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    letterSpacing?: ResponsiveStyleValue<keyof typeof LetterSpacing>;
    /** Whether to render the text in UPPERCASE. Inherited by default. */
    uppercase?: ResponsiveStyleValue<boolean>;
    /** Text shadow. Inherited by default. */
    shadow?: ResponsiveStyleValue<keyof typeof Shadow>;
    /** Text alignment. Inherited by default. */
    align?: ResponsiveStyleValue<"left" | "center" | "right" | "justify">;
    /** Whether to hyphenate the text when it wraps across multiple lines. Inherited by default. */
    hyphens?: ResponsiveStyleValue<boolean>;
    /** If `boolean`, whether to force the text to be on a single line, truncating it with an ellipsis (…) if needed. If `number`, truncate the text after that number of lines. Defaults to `false`. */
    truncate?: ResponsiveStyleValue<boolean | number>;
} & Omit<HTMLAttributes<HTMLElement>, "color"> & RefAttributes<HTMLElement>>> & Record<"P" | "P32" | "P16" | "P24" | "P20" | "P18" | "P14" | "P12", ForwardRefExoticComponent<{
    /** Element type to render. Defaults to `div`, or to `span` if `inline` is `true`. Can also be set to `child` to not render an element at all, applying the text styles to the child element instead. */
    as?: ElementType | "child";
    /** Whether `display` should be `inline` instead of the default for the element specified in `as`. */
    inline?: ResponsiveStyleValue<boolean>;
    /** Color of the text. Inherited by default. */
    color?: ResponsiveStyleValue<SxColor>;
    /** Font family. Inherited by default. */
    font?: ResponsiveStyleValue<keyof typeof FontFamily>;
    /** Font weight. Inherited by default. */
    weight?: ResponsiveStyleValue<keyof typeof FontWeight>;
    /** Whether the text should be italic. Inherited by default. */
    italic?: ResponsiveStyleValue<boolean>;
    /** Whether to enable ligatures. Inherited by default. */
    ligatures?: ResponsiveStyleValue<boolean>;
    /** Font size. Inherited by default. */
    size?: ResponsiveStyleValue<keyof typeof FontSize>;
    /** Line height or leading. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    lineHeight?: ResponsiveStyleValue<keyof typeof LineHeight>;
    /** Letter spacing or tracking. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    letterSpacing?: ResponsiveStyleValue<keyof typeof LetterSpacing>;
    /** Whether to render the text in UPPERCASE. Inherited by default. */
    uppercase?: ResponsiveStyleValue<boolean>;
    /** Text shadow. Inherited by default. */
    shadow?: ResponsiveStyleValue<keyof typeof Shadow>;
    /** Text alignment. Inherited by default. */
    align?: ResponsiveStyleValue<"left" | "center" | "right" | "justify">;
    /** Whether to hyphenate the text when it wraps across multiple lines. Inherited by default. */
    hyphens?: ResponsiveStyleValue<boolean>;
    /** If `boolean`, whether to force the text to be on a single line, truncating it with an ellipsis (…) if needed. If `number`, truncate the text after that number of lines. Defaults to `false`. */
    truncate?: ResponsiveStyleValue<boolean | number>;
} & Omit<HTMLAttributes<HTMLElement>, "color"> & RefAttributes<HTMLElement>>> & Record<"C" | "C16" | "C14" | "C12" | "C10", ForwardRefExoticComponent<{
    /** Element type to render. Defaults to `div`, or to `span` if `inline` is `true`. Can also be set to `child` to not render an element at all, applying the text styles to the child element instead. */
    as?: ElementType | "child";
    /** Whether `display` should be `inline` instead of the default for the element specified in `as`. */
    inline?: ResponsiveStyleValue<boolean>;
    /** Color of the text. Inherited by default. */
    color?: ResponsiveStyleValue<SxColor>;
    /** Font family. Inherited by default. */
    font?: ResponsiveStyleValue<keyof typeof FontFamily>;
    /** Font weight. Inherited by default. */
    weight?: ResponsiveStyleValue<keyof typeof FontWeight>;
    /** Whether the text should be italic. Inherited by default. */
    italic?: ResponsiveStyleValue<boolean>;
    /** Whether to enable ligatures. Inherited by default. */
    ligatures?: ResponsiveStyleValue<boolean>;
    /** Font size. Inherited by default. */
    size?: ResponsiveStyleValue<keyof typeof FontSize>;
    /** Line height or leading. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    lineHeight?: ResponsiveStyleValue<keyof typeof LineHeight>;
    /** Letter spacing or tracking. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    letterSpacing?: ResponsiveStyleValue<keyof typeof LetterSpacing>;
    /** Whether to render the text in UPPERCASE. Inherited by default. */
    uppercase?: ResponsiveStyleValue<boolean>;
    /** Text shadow. Inherited by default. */
    shadow?: ResponsiveStyleValue<keyof typeof Shadow>;
    /** Text alignment. Inherited by default. */
    align?: ResponsiveStyleValue<"left" | "center" | "right" | "justify">;
    /** Whether to hyphenate the text when it wraps across multiple lines. Inherited by default. */
    hyphens?: ResponsiveStyleValue<boolean>;
    /** If `boolean`, whether to force the text to be on a single line, truncating it with an ellipsis (…) if needed. If `number`, truncate the text after that number of lines. Defaults to `false`. */
    truncate?: ResponsiveStyleValue<boolean | number>;
} & Omit<HTMLAttributes<HTMLElement>, "color"> & RefAttributes<HTMLElement>>> & Record<"M" | "M16" | "M20" | "M18" | "M14" | "M12", ForwardRefExoticComponent<{
    /** Element type to render. Defaults to `div`, or to `span` if `inline` is `true`. Can also be set to `child` to not render an element at all, applying the text styles to the child element instead. */
    as?: ElementType | "child";
    /** Whether `display` should be `inline` instead of the default for the element specified in `as`. */
    inline?: ResponsiveStyleValue<boolean>;
    /** Color of the text. Inherited by default. */
    color?: ResponsiveStyleValue<SxColor>;
    /** Font family. Inherited by default. */
    font?: ResponsiveStyleValue<keyof typeof FontFamily>;
    /** Font weight. Inherited by default. */
    weight?: ResponsiveStyleValue<keyof typeof FontWeight>;
    /** Whether the text should be italic. Inherited by default. */
    italic?: ResponsiveStyleValue<boolean>;
    /** Whether to enable ligatures. Inherited by default. */
    ligatures?: ResponsiveStyleValue<boolean>;
    /** Font size. Inherited by default. */
    size?: ResponsiveStyleValue<keyof typeof FontSize>;
    /** Line height or leading. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    lineHeight?: ResponsiveStyleValue<keyof typeof LineHeight>;
    /** Letter spacing or tracking. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    letterSpacing?: ResponsiveStyleValue<keyof typeof LetterSpacing>;
    /** Whether to render the text in UPPERCASE. Inherited by default. */
    uppercase?: ResponsiveStyleValue<boolean>;
    /** Text shadow. Inherited by default. */
    shadow?: ResponsiveStyleValue<keyof typeof Shadow>;
    /** Text alignment. Inherited by default. */
    align?: ResponsiveStyleValue<"left" | "center" | "right" | "justify">;
    /** Whether to hyphenate the text when it wraps across multiple lines. Inherited by default. */
    hyphens?: ResponsiveStyleValue<boolean>;
    /** If `boolean`, whether to force the text to be on a single line, truncating it with an ellipsis (…) if needed. If `number`, truncate the text after that number of lines. Defaults to `false`. */
    truncate?: ResponsiveStyleValue<boolean | number>;
} & Omit<HTMLAttributes<HTMLElement>, "color"> & RefAttributes<HTMLElement>>> & Record<"Q" | "Q32" | "Q24" | "Q20", ForwardRefExoticComponent<{
    /** Element type to render. Defaults to `div`, or to `span` if `inline` is `true`. Can also be set to `child` to not render an element at all, applying the text styles to the child element instead. */
    as?: ElementType | "child";
    /** Whether `display` should be `inline` instead of the default for the element specified in `as`. */
    inline?: ResponsiveStyleValue<boolean>;
    /** Color of the text. Inherited by default. */
    color?: ResponsiveStyleValue<SxColor>;
    /** Font family. Inherited by default. */
    font?: ResponsiveStyleValue<keyof typeof FontFamily>;
    /** Font weight. Inherited by default. */
    weight?: ResponsiveStyleValue<keyof typeof FontWeight>;
    /** Whether the text should be italic. Inherited by default. */
    italic?: ResponsiveStyleValue<boolean>;
    /** Whether to enable ligatures. Inherited by default. */
    ligatures?: ResponsiveStyleValue<boolean>;
    /** Font size. Inherited by default. */
    size?: ResponsiveStyleValue<keyof typeof FontSize>;
    /** Line height or leading. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    lineHeight?: ResponsiveStyleValue<keyof typeof LineHeight>;
    /** Letter spacing or tracking. Inherited by default unless `size` is set, in which case it defaults to `AUTO`, which calculates a value that is appropriate for the font size. */
    letterSpacing?: ResponsiveStyleValue<keyof typeof LetterSpacing>;
    /** Whether to render the text in UPPERCASE. Inherited by default. */
    uppercase?: ResponsiveStyleValue<boolean>;
    /** Text shadow. Inherited by default. */
    shadow?: ResponsiveStyleValue<keyof typeof Shadow>;
    /** Text alignment. Inherited by default. */
    align?: ResponsiveStyleValue<"left" | "center" | "right" | "justify">;
    /** Whether to hyphenate the text when it wraps across multiple lines. Inherited by default. */
    hyphens?: ResponsiveStyleValue<boolean>;
    /** If `boolean`, whether to force the text to be on a single line, truncating it with an ellipsis (…) if needed. If `number`, truncate the text after that number of lines. Defaults to `false`. */
    truncate?: ResponsiveStyleValue<boolean | number>;
} & Omit<HTMLAttributes<HTMLElement>, "color"> & RefAttributes<HTMLElement>>>;
//# sourceMappingURL=Text.d.ts.map