/**
 * Utility functions for working with Fluent strings.
 *
 * @author Jesse Greenberg (PhET Interactive Simulations)
 */
import '../../../globals.js';
import TReadOnlyProperty from '../../../axon/js/TReadOnlyProperty.js';
import IntentionalAny from '../../../phet-core/js/types/IntentionalAny.js';
import LocalizedMessageProperty from './LocalizedMessageProperty.js';
declare const FluentUtils: {
    /**
     * Changes a set of arguments for the message into a set of values that can easily be used to
     * format the message. Does things like get Property values and converts enumeration values to strings.
     */
    handleFluentArgs: (args: IntentionalAny) => IntentionalAny;
    /**
     * Directly format a fluent message. Usually, you should use a PatternMessageProperty instead so that
     * the string will update when the locale changes. This is useful when you do not want the overhead of
     * creating a new Property. For example, real-time alerts.
     */
    formatMessage: (localizedMessageProperty: LocalizedMessageProperty, args: IntentionalAny) => string;
    /**
     * For our "simple" fluent messages with no arguments, they are essentially just
     * string properties, so we can treat them as such.
     */
    asStringProperty: (localizedMessageProperty: LocalizedMessageProperty) => TReadOnlyProperty<string>;
};
export default FluentUtils;
