import { type SynapSdkLike } from "./types.js"; export interface SynapToolOptions { /** Configured Synap SDK. */ sdk: SynapSdkLike; /** * Explicit Synap user scope. Required on unauthenticated channels, where * `ctx.session.auth.current` is `null`. * * This *overrides* the eve principal — it is not a fallback. Because the * factories are called once per `agent/tools/*.ts` module, setting it on an * authenticated multi-user agent pins every session to the same scope. Leave * it unset wherever the session carries a real principal. */ userId?: string; /** B2B instances only, where it is required. NOT accepted on a B2C * instance: the server rejects a call carrying one with HTTP 400. */ customerId?: string; /** Explicit conversation id. Defaults to the eve session id. */ conversationId?: string; /** Synap fetch mode ("accurate" default, or "fast"). */ mode?: string; } /** * Read tool: search the user's Synap memory for context relevant to a query. * Degrades to `{ available: false }` on missing identity or SDK failure — a * recall miss never aborts the turn. */ export declare function createSynapSearchTool(options: SynapToolOptions): import("eve/tools").ToolDefinition<{ query: string; maxResults?: number | undefined; }, { formattedContext: string; available: boolean; }>; /** * Write tool: persist an explicit fact/preference/note to Synap for future * recall. Raises `SynapIntegrationError` on failure (writes never silently * drop) — eve surfaces the error result to the model. */ export declare function createSynapStoreTool(options: SynapToolOptions): import("eve/tools").ToolDefinition<{ content: string; metadata?: Record | undefined; }, { recorded: boolean; ingestionId?: string | undefined; }>; //# sourceMappingURL=tools.d.ts.map