/**
 * @license
 * Copyright Google LLC 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 const _default: ((string[] | undefined)[] | (string | string[])[] | undefined)[];
export default _default;
