export declare function assertNonEmptyArray(arr: T[], message?: string): asserts arr is [T, ...T[]]; export declare function assertArrayHasExactly2(arr: T[], message?: string): asserts arr is [T, T]; export declare function assertArrayHasExactly1(arr: T[], message?: string): asserts arr is [T]; export declare function assertArrayHasAtLeast2(arr: T[], message?: string): asserts arr is [T, T, ...T[]]; export declare function isNonEmptyArray(arr: T[]): arr is [T, ...T[]]; export declare function isArrayWithAtLeast2(arr: T[]): arr is [T, T, ...T[]]; export declare function isArrayWithAtLeast3(arr: T[]): arr is [T, T, T, ...T[]]; export declare function isArrayWithExactly1(arr: T[]): arr is [T]; export declare function isArrayWithExactly2(arr: T[]): arr is [T, T]; export declare function isArrayWithExactly3(arr: T[]): arr is [T, T, T]; /** * type-safe version of `arr[arr.length - 1]` * @param arr a non empty array * @returns the last element of the array */ export declare const lastNonEmpty: (arr: [T, ...T[]]) => T;