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;