/**
 *
 *  Copyright (c) "Neo4j"
 *  Neo4j Sweden AB [http://neo4j.com]
 *
 *  This file is part of Neo4j.
 *
 *  Neo4j is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import type React from 'react';
import type { PolymorphicCommonProps, TooltipObjectProps } from '../_common/types';
import { Typography } from '../typography';
type TextOverflowProps = {
    /** The content to be truncated. Can be text, Typography components, or complex JSX. */
    children: React.ReactNode;
    /**
     * Controls the expand/collapse UI.
     * - string: show expand/collapse button with custom text (e.g., "View more")
     * - undefined: content is not expandable, only truncated with ellipsis
     * @default undefined
     */
    expandButton?: 'view-more' | 'ellipsis';
    /**
     * Maximum number of characters to display. Takes precedence over line-based truncation when set.
     */
    maxCharacters?: number;
    /**
     * Number of lines to show before truncation.
     * Uses CSS line-clamp for non-expandable content.
     * Uses DOM measurement for expandable content.
     * **Note**: Ignored if `maxCharacters` is explicitly set to a custom value.
     */
    lines?: number;
    /**
     * Whether to show tooltip with full text on hover when content is truncated.
     * @default true
     */
    shouldShowTooltip?: boolean;
    /** Props to pass to tooltip component */
    tooltipProps?: TooltipObjectProps;
    /** Callback function called when content is expanded or collapsed */
    onExpandedToggle?: (isExpanded: boolean) => void;
    /**
     * The typography variant to use for the text.
     * @default 'body-medium'
     */
    typographyVariant?: React.ComponentProps<typeof Typography>['variant'];
};
export declare const TextOverflow: <T extends React.ElementType = "div">({ as, children, className, htmlAttributes, lines, tooltipProps, onExpandedToggle, expandButton, maxCharacters, shouldShowTooltip, typographyVariant, ref, ...restProps }: PolymorphicCommonProps<T, TextOverflowProps>) => import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=TextOverflow.d.ts.map