/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */

declare function plural(n: number): number;
declare const _default: (string | number | (string[] | undefined)[] | number[] | (string | undefined)[] | typeof plural | {
    'CAD': (string | undefined)[];
    'JPY': string[];
    'MXN': (string | undefined)[];
    'MYR': string[];
    'TWD': string[];
    'USD': (string | undefined)[];
} | undefined)[];
export default _default;
