/**
 * Returns the first element of an array
 * @param arr
 * @returns the first element of the array
 * @example first([1, 2, 3]) // 1
 */
export declare function first<T>(arr: T[]): T | undefined;
/**
 * Returns the last element of an array
 * @param arr
 * @returns the last element of the array
 * @example last([1, 2, 3]) // 3
 */
export declare function last<T>(arr: T[]): T | undefined;
/**
 * Removes the element at the specified index from the array.
 * This modifies the original array.
 * @param arr - The array from which to remove the element.
 * @param index - The index of the element to remove.
 * @returns The modified array with the element removed.
 * @example remove([1, 2, 3], 1) // [1, 3]
 */
export declare function remove<T>(arr: T[], index: number): T[];
/**
 * Removes the first element of an array
 * @param arr
 * @returns a new array without the first element
 * @example removeFirst([1, 2, 3]) // [2, 3]
 */
export declare function removeFirst<T>(arr: T[]): T[];
/**
 * Removes the last element of an array
 * @param arr
 * @returns a new array without the last element
 * @example removeLast([1, 2, 3]) // [1, 2]
 */
export declare function removeLast<T>(arr: T[]): T[];
/**
 * Chunk an array into smaller arrays of a specified size
 * @param data - the array to chunk
 * @param size - the size of each chunk (default 10)
 * @returns an array of smaller arrays (data[])
 */
export declare const chunk: <T>(data: T[], size?: number) => T[][];
//# sourceMappingURL=arrayUtils.d.ts.map