export declare function transferFields(source: T, predicate: (f: keyof T, v: T[keyof T]) => boolean, destination: Partial, ...fields: (keyof T)[]): number; export declare namespace transferFields { function truthy(source: T, destination: Partial, ...fields: (keyof T)[]): number; function notNull(source: T, destination: Partial, ...fields: (keyof T)[]): number; function defined(source: T, destination: Partial, ...fields: (keyof T)[]): number; function changed(source: T, compare: T, destination: Partial, ...fields: (keyof T)[]): number; } export declare function hasChangedFields(left: T, right: T, ...fields: (keyof T)[]): boolean; type ExtractChangedFieldsResult = { transferred: number; result: Partial; }; export declare function extractChangedFields(source: Partial, image: T, ...fields: (keyof T)[]): ExtractChangedFieldsResult; export {};