import React, { ElementType, HTMLAttributes, ReactElement, ReactNode } from "react";
import { ClassNameCloneableChild } from "@react-md/utils";
/**
* A union of the available text container sizes. One of these values must be
* chosen to help set the max width for text.
*/
export declare type TextContainerSize = "auto" | "mobile" | "desktop";
/**
* A type describing the text container's children render function. It provides
* an object containing the correct (and merged) className and exects a
* renderable element to be returned.
*/
export declare type TextContainerRenderFunction = (props: {
className: string;
}) => ReactElement;
/**
* The base props for rendering the text component.
*/
export interface TextContainerProps extends HTMLAttributes {
/**
* An optional className to merge with typography text container styles.
*/
className?: string;
/**
* The size for the text container. This can usually just be left at the
* default of `"auto"` since it will automatically transition between
* `"mobile"` and `"desktop"` based on media queries. However, you can also
* manually specify `"mobile"` or `"desktop"` if needed.
*/
size?: TextContainerSize;
/**
* The component to render as. By default this will just be a div, but
* anything can be provided.
*/
component?: ElementType;
/**
* Either a child render function or a react node. If this is not the child
* render function, a different wrapper component can be provided using the
* `component` prop.
*/
children?: ReactNode | ClassNameCloneableChild | TextContainerRenderFunction;
/**
* Boolean if the `className` should be cloned into the `children` for this
* component.
*
* Note: This will only work if the child component passed the `className`
* down to to the DOM element.
*/
clone?: boolean;
}
declare const TextContainer: React.ForwardRefExoticComponent | React.FunctionComponent>>;
export default TextContainer;