export declare const EMPTY_ARRAY: readonly unknown[]; export declare function emptyArray(): T[]; export declare const EMPTY_STRING_ARRAY: string[]; export declare 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 declare function isEmptyArray(input: unknown[] | readonly unknown[]): boolean; export declare function reverse(input: T[]): IterableIterator; export declare 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 declare function zipTuples(left: T, right: T): IterableIterator>; export declare function zipArrays(left: T[], right: T[]): IterableIterator<[ 'retain', number, T, T ] | ['pop', number, T, undefined] | ['push', number, undefined, T]>; export {};