import type { Address } from '../core/models/api/address'; import type { DatasetUtil } from '../utils/datasetUtil'; export type RuleResult = { hasConflict: boolean; resolvedValue?: T; }; export type ConflictRule = (provided?: T, detected?: T) => RuleResult; export declare const defaultConflictRule: (provided?: T, detected?: T) => RuleResult; /** * A factory function that returns a conflict rule for the `Address` model. * The rule handles enrichment (auto-resolution) and deep equality checks. */ export declare const createAddressConflictRule: (datasetUtils: DatasetUtil) => ConflictRule
; type UseDataConflictsReturn = { hasConflicts: boolean; conflictingProperties: (keyof T)[]; wasAutoResolved: boolean; resolvedData: T | undefined; }; /** * A hook to compare two data objects and identify conflicting properties. * It supports custom rules for complex comparisons and can auto-resolve certain conflicts. * * @template T The shape of the data objects being compared. * @param providedData The primary data source (e.g., user input). * @param detectedData The secondary data source (e.g., OCR extraction). * @param rules A map of custom conflict rules for specific properties. * @param onAutoResolve * @returns An object containing the conflict status and any resolved data. */ export declare const useDataConflicts: (providedData: T | undefined, detectedData: T | undefined, rules?: Partial>>, onAutoResolve?: (resolvedData: T) => void) => UseDataConflictsReturn; export {};