import type { NumberFormatOptionParams, NumberFormatReturnValue, NumberFormatValue } from './NumberUtils';
/**
 * Shape of a variant formatter (`formatPhoneNumber`, `formatCurrency`,
 * `formatPercent`, `formatNumber`, …).
 */
export type NumberFormatter = {
    (value: NumberFormatValue | null, options: NumberFormatOptionParams & {
        returnAria: true;
    }): NumberFormatReturnValue;
    (value: NumberFormatValue | null, options?: NumberFormatOptionParams): string;
};
/**
 * Format a value with an explicit formatter, picking up `locale` and
 * `NumberFormat` defaults from the Eufemia `Provider`.
 *
 * `formatter` is optional and defaults to `formatNumber` for
 * backwards compatibility with plain numeric values.
 *
 * Pass the variant formatter you need, e.g.
 * `useNumberFormat(value, formatCurrency, { decimals: 2 })`.
 */
declare function useNumberFormat(value: NumberFormatValue, formatter: NumberFormatter, options: NumberFormatOptionParams & {
    returnAria: true;
}): NumberFormatReturnValue;
declare function useNumberFormat(value: NumberFormatValue, formatter?: NumberFormatter, options?: NumberFormatOptionParams): string;
export default useNumberFormat;
