/**
 * Removes a value from an array at a specific index
 *
 * @export
 * @param {any[]} arr
 * @param {number} index
 * @return {*}  {any[]}
 */
export declare function removeAtIndex(arr: any[], index: number): any[];
/**
 * Removes multiple values from an array at specific indexes
 *
 * @export
 * @param {any[]} arr
 * @param {number[]} indexes
 * @return {*}  {any[]}
 */
export declare function removeMultipleAtIndex(arr: any[], indexes: number[]): any[];
/**
 * Inserts a value into an array at a specific index
 *
 * @export
 * @param {any[]} arr
 * @param {number} index
 * @param {*} value
 * @return {*}  {any[]}
 */
export declare function insertAtIndex(arr: any[], index: number, value: any): any[];
/**
 * Inserts multiple values into an array at a specific index
 *
 * @export
 * @param {any[]} arr
 * @param {number} index
 * @param {any[]} values
 * @return {*}  {any[]}
 */
export declare function insertMultipleAtIndex(arr: any[], index: number, values: any[]): any[];
/**
 * Finds an item in an array by a property and value
 *
 * @export
 * @param {any[]} arr
 * @param {string} prop
 * @param {*} value
 * @return {*}  {*}
 */
export declare function findIndexByProp(arr: any[], prop: string, value: any): any;
/**
 * Moves a value from one index to another in an array
 *
 * @export
 * @param {any[]} arr
 * @param {number} fromIndex
 * @param {number} toIndex
 * @return {*}  {any[]}
 */
export declare function moveToIndex(arr: any[], fromIndex: number, toIndex: number): any[];
/**
 * Moves multiple values from indexes to another in an array
 *
 * @export
 * @param {any[]} arr
 * @param {number[]} fromIndexes
 * @param {number} toIndex
 * @return {*}  {any[]}
 */
export declare function moveMultipleToIndex(arr: any[], fromIndexes: number[], toIndex: number): any[];
export declare function groupBy(array: Array<Record<string, any>>, key: string): Record<string, Array<Record<string, any>>>;
/**
 * Handles multi-selection logic for a list of items, allowing users to select
 * a range of items between the last selected item and a newly selected item.
 *
 * @param selectedItemIds - An array of currently selected item IDs.
 * @param newItemId - The ID of the newly selected item.
 * @param items - An array of objects representing the available items, each containing an `id` property.
 * @returns A new array of selected item IDs, including the range of items between the last selected item and the new item.
 *
 * @remarks
 * - If no items are currently selected, the function will return an array containing only the `newItemId`.
 * - If the `newItemId` or the last selected item is not found in the `items` array, the function will return an array containing only the `newItemId`.
 * - The function ensures that the selection order is consistent with the order of items in the `items` array.
 * - Items that are already selected will not be added again to the selection.
 */
export declare function multiSelectTo(selectedItemIds: string[], newItemId: string, items: Array<{
    id: string;
}>): string[];
/**
 * Handles column resizing logic for relative values.
 * For example, if you have two values [50, 50] totaling 100, and you change the first value to 70, the second value will automatically adjust to 30 to maintain the total.
 */
export declare function adjustRelativeValues(values: number[], delta: number, index: number, min: number, startWidth: number, nextWidth: number): void;
