/**
 * Result from immutable array transfer operation.
 *
 * @public
 */
export interface ITransferArrayItemResult<T> {
    /**
     * Source array after transfer.
     */
    from: Array<T>;
    /**
     * Target array after transfer.
     */
    to: Array<T>;
}
/**
 * Move an item within an array.
 *
 * @param array - Array to modify.
 * @param fromIndex - Source index.
 * @param toIndex - Target index.
 * @returns Modified array (same reference).
 *
 * @public
 */
export declare function moveItemInArray<T>(array: Array<T>, fromIndex: number, toIndex: number): Array<T>;
/**
 * Transfer an item from one array to another.
 *
 * @param sourceArray - Source array.
 * @param targetArray - Target array.
 * @param sourceIndex - Index in source array.
 * @param targetIndex - Index in target array.
 *
 * @public
 */
export declare function transferArrayItem<T>(sourceArray: Array<T>, targetArray: Array<T>, sourceIndex: number, targetIndex: number): void;
/**
 * Copy an item from one array to another.
 *
 * @param sourceArray - Source array.
 * @param targetArray - Target array.
 * @param sourceIndex - Index in source array.
 * @param targetIndex - Index in target array.
 *
 * @public
 */
export declare function copyArrayItem<T>(sourceArray: Array<T>, targetArray: Array<T>, sourceIndex: number, targetIndex: number): void;
/**
 * Move an item within an array (immutable).
 *
 * @param array - Original array.
 * @param fromIndex - Source index.
 * @param toIndex - Target index.
 * @returns New array with item moved.
 *
 * @public
 */
export declare function moveItemInArrayImmutable<T>(array: Array<T>, fromIndex: number, toIndex: number): Array<T>;
/**
 * Transfer an item from one array to another (immutable).
 *
 * @param sourceArray - Source array.
 * @param targetArray - Target array.
 * @param sourceIndex - Index in source array.
 * @param targetIndex - Index in target array.
 * @returns Object with new source and target arrays.
 *
 * @public
 */
export declare function transferArrayItemImmutable<T>(sourceArray: Array<T>, targetArray: Array<T>, sourceIndex: number, targetIndex: number): ITransferArrayItemResult<T>;
//# sourceMappingURL=ArrayUtils.d.ts.map