/** * Structural JSON equality, key-order independent — the ONE copy two seams share * (`transcript-rules.ts` and `harness-state.ts`). Both compare wire-serializable * UIMessage parts; a second private copy of the same comparison is how the two * drifted apart on undefined-key handling before this was unified. * * `ignoreUndefined` is the ONLY difference the two callers ever needed: * - transcript-rules leaves it off (its `isApprovalResponse` check must treat a * part carrying an explicit `undefined` prop as DISTINCT — the conservative, * reject-the-flip direction); * - harness-state turns it on, because a message that round-tripped the wire * (which drops `undefined`) must not read as an edit against a stored copy * that still carries one, or it would falsely clear the harness session. */ export declare function jsonEqual(left: unknown, right: unknown, ignoreUndefined?: boolean): boolean; //# sourceMappingURL=json-equal.d.ts.map