import { type HTMLAttributes } from 'react'; import type { AriaLabelingProps } from '../../core/types/a11y-props.js'; import type { BehaviorTrackingProps } from '../../core/types/behavior-tracking-props.js'; import type { DataTestId } from '../../core/types/data-props.js'; import type { MaskingProps } from '../../core/types/masking-props.js'; import type { StylingProps } from '../../core/types/styling-props.js'; /** * Available modes for how overly long text is truncated and where the ellipsis is placed. * @public */ export type TruncationMode = 'start' | 'middle' | 'end'; /** * The props for the TextEllipsis component. * @public */ export interface TextEllipsisProps extends HTMLAttributes, AriaLabelingProps, StylingProps, DataTestId, MaskingProps, BehaviorTrackingProps { /** The children (as text) passed to the component. */ children: string; /** * The mode used for truncating the text, either at the start, in the middle or at the end. * @defaultValue 'end' */ truncationMode?: TruncationMode; /** Gets called when text needs to get truncated due to lack of horizontal space. */ onTextOverflow?: (ellipsized: boolean) => void; } /** * Use the `TextEllipsis` component to truncate text and show an ellipsis whenever * there is insufficient space to render the entire text. While some of our Strato * components provide ellipsis out of the box, you need to take care of this yourself * when writing your own components. * @public */ export declare const TextEllipsis: (props: TextEllipsisProps & import("react").RefAttributes) => import("react").ReactElement | null;