export default TextBounds;
declare namespace TextBounds {
    /**
     * Returns a new Bounds2 that is the approximate bounds of a Text node displayed with the specified font and renderedText.
     * @public
     *
     * This method uses an SVG Text element, sets its text, and then determines its size to estimate the size of rendered text.
     *
     * NOTE: Calling code relies on the new Bounds2 instance, as they mutate it.
     *
     * @param {Font} font - The font of the text
     * @param {string} renderedText - Text to display (with any special characters replaced)
     * @returns {Bounds2}
     */
    function approximateSVGBounds(font: Font, renderedText: string): Bounds2;
    /**
     * Returns a guess for what the SVG bounds of a font would be, based on PhetFont as an example.
     * @public
     *
     * @param {Font} font
     * @param {string} renderedText
     * @returns {Bounds2}
     */
    function guessSVGBounds(font: Font, renderedText: string): Bounds2;
    /**
     * Returns a new Bounds2 that is the approximate bounds of the specified Text node.
     * @public
     *
     * NOTE: Calling code relies on the new Bounds2 instance, as they mutate it.
     *
     * @param {scenery.Text} text - The Text node
     * @returns {Bounds2}
     */
    function accurateCanvasBounds(text: scenery.Text): Bounds2;
    /**
     * Returns a new Bounds2 that is the approximate bounds of the specified Text node.
     * @public
     *
     * This method repeatedly renders the text into a Canvas and checks for what pixels are filled. Iteratively doing this for each bound
     * (top/left/bottom/right) until a tolerance results in very accurate bounds of what is displayed.
     *
     * NOTE: Calling code relies on the new Bounds2 instance, as they mutate it.
     *
     * @param {scenery.Text} text - The Text node
     * @returns {Bounds2}
     */
    function accurateCanvasBoundsFallback(text: scenery.Text): Bounds2;
    /**
     * Returns a possibly-cached (treat as immutable) Bounds2 for use mainly for vertical parameters, given a specific Font.
     * @public
     *
     * Uses SVG bounds determination for this value.
     *
     * @param {Font} font - The font of the text
     * @returns {Bounds2}
     */
    function getVerticalBounds(font: Font): Bounds2;
    /**
     * Returns an approximate width for text, determined by using Canvas' measureText().
     * @public
     *
     * @param {Font} font - The font of the text
     * @param {string} renderedText - Text to display (with any special characters replaced)
     * @returns {number}
     */
    function approximateCanvasWidth(font: Font, renderedText: string): number;
    /**
     * Returns a new Bounds2 that is the approximate bounds of a Text node displayed with the specified font and renderedText.
     * @public
     *
     * This method uses a hybrid approach, using SVG measurement to determine the height, but using Canvas to determine the width.
     *
     * NOTE: Calling code relies on the new Bounds2 instance, as they mutate it.
     *
     * @param {Font} font - The font of the text
     * @param {string} renderedText - Text to display (with any special characters replaced)
     * @returns {Bounds2}
     */
    function approximateHybridBounds(font: Font, renderedText: string): Bounds2;
    /**
     * Returns a new Bounds2 that is the approximate bounds of a Text node displayed with the specified font, given a DOM element
     * @public
     *
     * NOTE: Calling code relies on the new Bounds2 instance, as they mutate it.
     *
     * @param {Font} font - The font of the text
     * @param {Element} element - DOM element created for the text. This is required, as the text handles HTML and non-HTML text differently.
     * @returns {Bounds2}
     */
    function approximateDOMBounds(font: Font, element: Element): Bounds2;
    /**
     * Returns a new Bounds2 that is the approximate bounds of a Text node displayed with the specified font, given a DOM element
     * @public
     *
     * TODO: Can we use this? What are the differences? https://github.com/phetsims/scenery/issues/1581
     *
     * NOTE: Calling code relies on the new Bounds2 instance, as they mutate it.
     *
     * @param {Font} font - The font of the text
     * @param {Element} element - DOM element created for the text. This is required, as the text handles HTML and non-HTML text differently.
     * @returns {Bounds2}
     */
    function approximateImprovedDOMBounds(font: Font, element: Element): Bounds2;
    /**
     * Modifies an SVG text element's properties to match the specified font and text.
     * @public
     *
     * @param {SVGTextElement} textElement
     * @param {Font} font - The font of the text
     * @param {string} renderedText - Text to display (with any special characters replaced)
     */
    function setSVGTextAttributes(textElement: SVGTextElement, font: Font, renderedText: string): void;
    /**
     * Initializes containers and elements required for SVG text measurement.
     * @public
     */
    function initializeTextBounds(): void;
}
import { Font } from '../imports.js';
import Bounds2 from '../../../dot/js/Bounds2.js';
//# sourceMappingURL=TextBounds.d.ts.map