import type { MemoryConfigInternal } from '@mastra/core/memory'; import type { ToolAction } from '@mastra/core/tools'; /** * Deep merges two objects, with special handling for null values (delete) and arrays (replace). * - Object properties are recursively merged * - null values in the update will delete the corresponding property * - Arrays are replaced entirely (not merged element-by-element) * - Primitive values are overwritten */ export declare function deepMergeWorkingMemory(existing: Record | null | undefined, update: Record | null | undefined): Record; export declare const updateWorkingMemoryTool: (memoryConfig?: MemoryConfigInternal) => import("@mastra/core/tools").Tool, "update-working-memory", unknown>; export declare const __experimental_updateWorkingMemoryToolVNext: (config: MemoryConfigInternal) => import("@mastra/core/tools").Tool, "update-working-memory", unknown>; /** * Returns the working-memory tool plus the wire name it should be registered under. * * - Default delivery (`useStateSignals: false`): wire name `updateWorkingMemory`, * identical shape to today. * - State-signals delivery (`useStateSignals: true`): wire name `setWorkingMemory`. * The rename keeps legacy strip filters (which match the literal `updateWorkingMemory`) * from removing tool-call parts so they persist as a normal audit trail. Any * future state-signal-specific tweaks to the tool (e.g. delta-aware results, * scoped descriptions) belong here. * * The VNext vs default tool body decision is left to the caller because Memory * owns the `isVNextWorkingMemoryConfig` check; pass `vNext: true` to use the * search-and-replace shape. */ export declare function createWorkingMemoryTool(config: MemoryConfigInternal, options?: { vNext?: boolean; }): { name: string; tool: ToolAction; }; //# sourceMappingURL=working-memory.d.ts.map