import * as react_jsx_runtime from 'react/jsx-runtime';
import { ReactNode } from 'react';

type FitterProps = {
    /**
     * The content to fit.
     */
    children: ReactNode;
    /**
     * The minimum scale that the text will shrink to. E.g. 0.25 means the text
     * will shrink to no less than 25% of its original size.
     */
    minSize?: number;
    /**
     * The maximum number of lines that the text will shrink to fit.
     */
    maxLines?: number;
    /**
     * The precision at which the text will settle. The component finds the best
     * size by halving the difference between the current size and the min/max
     * size. If the difference is less than the settle precision, the component
     * will stop and settle on that size. A value of 0.01 means the component will
     * settle when the difference is less than 1%.
     */
    settlePrecision?: number;
    /**
     * Whether to update the text size when the size of the component changes.
     */
    updateOnSizeChange?: boolean;
    /**
     * The time in milliseconds to wait before updating the text size when the
     * size of the component changes. This is useful when the component is being
     * resized frequently and you want to avoid updating the text size on every
     * resize event.
     */
    resizeDebounceMs?: number;
};
/**
 * A utility component that fits text to a container by finding the best text
 * size through binary search. The text will never grow larger than the original
 * size and will shrink to fit the container.
 */
declare const Fitter: ({ children, minSize, maxLines, settlePrecision, updateOnSizeChange, resizeDebounceMs, }: FitterProps) => react_jsx_runtime.JSX.Element;

export { Fitter, type FitterProps };
