import { AnyObject } from '../../shared/utils/utility-types';
export declare const defaultMerger: <P extends AnyObject>(existingValue: P, delta: Partial<P>) => P & Partial<P>;
type UseWithChangeDetectionParams<P extends AnyObject, E extends object = Partial<P>> = {
    target: P | P[];
    onChange: (event: E, index?: number) => void;
};
/**
 * A hook that extends a target object (or array of objects) with change detection functionality.
 * It monitors changes and triggers the provided `onChange` callback whenever a change occurs.
 *
 * This hook can handle both single object and array of objects.
 *
 * @internal
 */
export declare function useWithChangeDetection<P extends AnyObject, E extends object = Partial<P>>(params: UseWithChangeDetectionParams<P, E>): (P & {
    onChange: (event: E) => void;
}) | (P & {
    onChange: (event: E) => void;
})[];
export {};
