import type { ScaledUnitFormatFactoryOptions } from '../scaled-unit/scaled-unit';
import { ScaledUnitFormat } from './scaled-unit-format';
/**
 * Representations of a unit in a particular language
 */
export declare class UnitTranslation {
    readonly singular: string;
    readonly plural: string;
    readonly symbol: string;
    constructor(singular: string, plural: string, symbol: string);
}
/**
 * A map of locales of string format "[lang]" or "[lang]-[region]", for example "en" and / or "en-us", to UnitTranslation objects
 */
export type UnitTranslations = ReadonlyMap<string, UnitTranslation>;
export interface ManuallyTranslatedScaledUnitFormatOptions {
    /**
     * Translations for the unit by locale string.
     * The locale strings must be of the form [lang] or [lang]-[region], for example "en" and / or "en-us".
     * Other subtags besides lang and region are not supported.
     * Translations for "en" must be provided.
     */
    readonly unitTranslations: UnitTranslations;
    /**
     * String for prefix of this scaled unit, for example "k" (for kilo-).
     * Assumed the same across languages.
     * Base unit must use "", i.e. empty string, as the scaled prefix text.
     */
    readonly scaledPrefixText: string;
}
/**
 * A formatter for units that are not supported by Intl.NumberFormat
 */
export declare class ManuallyTranslatedScaledUnitFormat extends ScaledUnitFormat {
    private readonly pluralRules;
    private readonly formatter;
    private readonly unitTranslation;
    private readonly scaledPrefixText;
    protected constructor(scaledUnitFormatFactoryOptions: ScaledUnitFormatFactoryOptions, { unitTranslations, scaledPrefixText }: ManuallyTranslatedScaledUnitFormatOptions);
    static createFactory(manuallyTranslatedScaledUnitFormatOptions: ManuallyTranslatedScaledUnitFormatOptions): (scaledUnitFormatFactoryOptions: ScaledUnitFormatFactoryOptions) => ManuallyTranslatedScaledUnitFormat;
    format(value: number): string;
    private getTranslationToUse;
}
