import { ArrayLike, DynamicArrayLike } from "../../type_definitions/array_type_definitions.js"; export declare function copy, T>(from: Readonly>, to: ArrayType, copyCallback?: (fromElement: T, toElement: T) => T): ArrayType; /** If `array` is `Readonly`, due to typescript issues with `Readonly`, the return type might also be mistakenly marked as `Readonly` To avoid this, it is advised to simply specify the type of the `array` variable directly: `clone(...)`*/ export declare function clone>(array: ArrayType, cloneCallback?: (elementToClone: number) => number): ArrayType; export declare function clone, T>(array: ArrayType, cloneCallback?: (elementToClone: T) => T): ArrayType; export declare function clone(array: Readonly, cloneCallback?: (elementToClone: T) => T): T[]; export declare function clone>(array: Readonly, cloneCallback?: (elementToClone: number) => number): ArrayType; export declare function clone, T>(array: Readonly, cloneCallback?: (elementToClone: T) => T): ArrayType; export declare function equals(array: Readonly>, other: Readonly>, elementsEqualCallback?: (arrayElement: T, otherElement: T) => boolean): boolean; export declare function first(array: Readonly>): T | undefined; export declare function last(array: Readonly>): T | undefined; export declare function has(array: Readonly>, callback: (elementToCheck: T, elementIndex: number) => boolean): boolean; export declare function hasEqual(array: Readonly>, elementToFind: T, elementsEqualCallback?: (elementToCheck: T, elementToFind: T) => boolean): boolean; export declare function find(array: Readonly>, callback: (elementToCheck: T, elementIndex: number) => boolean): T | undefined; export declare function findIndex(array: Readonly>, callback: (elementToCheck: T, elementIndex: number) => boolean): number; export declare function findAll(array: Readonly>, callback: (elementToCheck: T, elementIndex: number) => boolean): T[]; export declare function findAllIndexes(array: Readonly>, callback: (elementToCheck: T, elementIndex: number) => boolean): number[]; export declare function findEqual(array: Readonly>, elementToFind: T, elementsEqualCallback?: (elementToCheck: T, elementToFind: T) => boolean): T | undefined; export declare function findAllEqual(array: Readonly>, elementToFind: T, elementsEqualCallback?: (elementToCheck: T, elementToFind: T) => boolean): T[]; export declare function findIndexEqual(array: Readonly>, elementToFind: T, elementsEqualCallback?: (elementToCheck: T, elementToFind: T) => boolean): number; export declare function findAllIndexesEqual(array: Readonly>, elementToFind: T, elementsEqualCallback?: (elementToCheck: T, elementToFind: T) => boolean): number[]; export declare function remove(array: DynamicArrayLike, callback: (elementToCheck: T, elementIndex: number) => boolean): T | undefined; export declare function removeIndex(array: DynamicArrayLike, index: number): T | undefined; export declare function removeAll(array: DynamicArrayLike, callback: (elementToCheck: T, elementIndex: number) => boolean): T[]; export declare function removeAllIndexes(array: DynamicArrayLike, indexes: ArrayLike): T[]; export declare function removeEqual(array: DynamicArrayLike, elementToRemove: T, elementsEqualCallback?: (elementToCheck: T, elementToRemove: T) => boolean): T | undefined; export declare function removeAllEqual(array: DynamicArrayLike, elementToRemove: T, elementsEqualCallback?: (elementToCheck: T, elementToRemove: T) => boolean): T[]; export declare function clear, T>(array: ArrayType): ArrayType; export declare function pushUnique(array: DynamicArrayLike, elementToAdd: T, elementsEqualCallback?: (elementToCheck: T, elementToAdd: T) => boolean): number; export declare function unshiftUnique(array: DynamicArrayLike, elementToAdd: T, elementsEqualCallback?: (elementToCheck: T, elementToAdd: T) => boolean): number; export declare const ArrayUtils: { readonly copy: typeof copy; readonly clone: typeof clone; readonly equals: typeof equals; readonly first: typeof first; readonly last: typeof last; readonly has: typeof has; readonly hasEqual: typeof hasEqual; readonly find: typeof find; readonly findIndex: typeof findIndex; readonly findAll: typeof findAll; readonly findAllIndexes: typeof findAllIndexes; readonly findEqual: typeof findEqual; readonly findAllEqual: typeof findAllEqual; readonly findIndexEqual: typeof findIndexEqual; readonly findAllIndexesEqual: typeof findAllIndexesEqual; readonly remove: typeof remove; readonly removeIndex: typeof removeIndex; readonly removeAll: typeof removeAll; readonly removeAllIndexes: typeof removeAllIndexes; readonly removeEqual: typeof removeEqual; readonly removeAllEqual: typeof removeAllEqual; readonly clear: typeof clear; readonly pushUnique: typeof pushUnique; readonly unshiftUnique: typeof unshiftUnique; };