export interface ChangingUnit extends UnitBase {
    units: {
        [date: string]: ConstantUnit;
    };
}
export interface ConstantUnit extends UnitBase {
    parameter?: string;
    ratio?: boolean;
    units?: undefined;
}
export declare const pluralizationCategories: readonly ["zero", "one", "two", "few", "many", "other"];
type PluralizationCategoriesTuple = typeof pluralizationCategories;
export type PluralizationCategory = PluralizationCategoriesTuple[number];
export type StringByPluralizationCategory = {
    [Property in PluralizationCategory]?: string;
};
export type Unit = ChangingUnit | ConstantUnit;
export interface UnitBase {
    label?: StringByPluralizationCategory | string;
    name: string;
    short_label?: StringByPluralizationCategory | string;
    units?: {
        [date: string]: ConstantUnit;
    } | undefined;
}
export declare function getUnitAtDate(unitByName: {
    [name: string]: Unit;
}, name: string | undefined | null, date: string | undefined | null): Unit | undefined;
export declare function getUnitLabel(unitByName: {
    [name: string]: Unit;
}, name: string | undefined | null, date: string | undefined | null, pluralizationCategory: PluralizationCategory): string;
export declare function getUnitShortLabel(unitByName: {
    [name: string]: Unit;
}, name: string | undefined | null, date: string | undefined | null, pluralizationCategory: PluralizationCategory): string;
export declare function labelFromUnit(unit: Unit, pluralizationCategory: PluralizationCategory): string;
export declare function shortLabelFromUnit(unit: Unit, pluralizationCategory: PluralizationCategory): string;
export {};
