import { Unit } from './units-constants';
export declare function isUnitSupported(unit: Unit): boolean;
export interface UnifiedNumberFormatOptions extends Intl.NumberFormatOptions {
    unit?: Unit;
    unitDisplay?: 'long' | 'short' | 'narrow';
}
export interface ResolvedUnifiedNumberFormatOptions extends Intl.ResolvedNumberFormatOptions {
    unit?: Unit;
    unitDisplay?: 'long' | 'short' | 'narrow';
}
interface LocaleData {
    locale: string;
    parentLocale?: string;
    units: Record<string, UnitData>;
}
interface UnitPattern {
    one?: string;
    other?: string;
    perUnit?: string;
}
export interface UnitData {
    displayName: string;
    long: UnitPattern;
    short?: UnitPattern;
    narrow?: UnitPattern;
}
declare const NativeNumberFormat: {
    (locales?: string | string[] | undefined, options?: Intl.NumberFormatOptions | undefined): Intl.NumberFormat;
    new (locales?: string | string[] | undefined, options?: Intl.NumberFormatOptions | undefined): Intl.NumberFormat;
    supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions | undefined): string[];
};
export declare class UnifiedNumberFormat implements Intl.NumberFormat {
    private unit;
    private unitDisplay;
    private nf;
    private locale;
    private patternData?;
    constructor(locales: string | string[], { style, unit, unitDisplay, ...options }?: UnifiedNumberFormatOptions);
    format(num: number): string;
    formatToParts(num: number): Intl.NumberFormatPart[];
    resolvedOptions(): ResolvedUnifiedNumberFormatOptions;
    static supportedLocalesOf(...args: Parameters<typeof NativeNumberFormat.supportedLocalesOf>): string[];
    static polyfilled: boolean;
    static __unitLocaleData__: Record<string, LocaleData>;
    static __addUnitLocaleData(data: Record<string, LocaleData>): void;
}
export {};
