import type { BaseItem } from '@signaldb/core';
/**
 * Computes the modified fields between two items recursively.
 * @param oldItem The old item
 * @param newItem The new item
 * @returns The modified fields
 */
export declare function computeModifiedFields<T extends Record<string, any>>(oldItem: T, newItem: T): string[];
/**
 * Compute changes between two arrays of items.
 * @param oldItems Array of the old items
 * @param newItems Array of the new items
 * @returns The changeset
 */
export default function computeChanges<ItemType extends BaseItem<IdType>, IdType>(oldItems: ItemType[], newItems: ItemType[]): {
    added: ItemType[];
    modified: ItemType[];
    modifiedFields: Map<IdType, string[]>;
    removed: ItemType[];
};
