import type { DomainObjectShape } from '../../instantiation/DomainObjectShape';
type DeepPartial<T> = {
    [K in keyof T]?: T[K] extends Array<infer U> ? Array<DeepPartial<U>> : T[K] extends object ? DeepPartial<T[K]> : T[K];
};
/**
 * .what = deep clones domain objects safely
 * .why = preserves instance types, methods, and nested structures
 */
export declare const clone: <T extends DomainObjectShape>(dobj: T, updates?: DeepPartial<T>) => T;
export {};
