declare module '@glimmer/util/lib/array-utils' { export const EMPTY_ARRAY: readonly unknown[]; export function emptyArray(): T[]; export const EMPTY_STRING_ARRAY: string[]; export const EMPTY_NUMBER_ARRAY: number[]; /** * This function returns `true` if the input array is the special empty array sentinel, * which is sometimes used for optimizations. */ export function isEmptyArray(input: unknown[] | readonly unknown[]): boolean; export function reverse(input: T[]): IterableIterator; export function enumerate(input: Iterable): IterableIterator<[number, T]>; type ZipEntry = { [P in keyof T]: P extends `${infer N extends number}` ? [N, T[P], T[P]] : never; }[keyof T & number]; /** * Zip two tuples with the same type and number of elements. */ export function zipTuples(left: T, right: T): IterableIterator>; export function zipArrays(left: T[], right: T[]): IterableIterator<[ "retain", number, T, T ] | ["pop", number, T, undefined] | ["push", number, undefined, T]>; export {}; }