import type { Session } from "neo4j-driver";
import type { GraphRelationship } from "./index.js";
export interface InjectConversationProvenanceParams {
    session: Session;
    /** The relationships array the caller is about to pass to `writeNodeWithEdges`. */
    relationships: readonly GraphRelationship[];
    /** The accountId of the write — must match the source node's accountId. */
    accountId: string;
    /** Labels of the node about to be written. Used to skip injection when provenance is not required. */
    writeLabels: readonly string[];
    /**
     * Value of `process.env.SESSION_NODE_ID` at call time. Passed as a
     * parameter so tests can supply it without mutating process.env. The
     * value is the `sessionId` UUID property of the active
     * `:AdminConversation`, not its Neo4j elementId — the env-var name is
     * historical. The lookup MATCHes `(c:Conversation {sessionId, accountId})`
     * and reads `elementId(c)` itself to compose the synthetic edge.
     */
    conversationNodeId: string | undefined;
    /**
     * Log namespace prefix — typically `"mcp:contacts"` or `"mcp:memory"`. Used
     * to format the `[provenance-inject]` / `[provenance-missing]` lines so the
     * operator can attribute the signal to a plugin.
     */
    logNamespace: string;
    /** Tool name (e.g. "contact-create") for the inject/missing log lines. */
    tool: string;
}
export declare function injectConversationProvenance(params: InjectConversationProvenanceParams): Promise<GraphRelationship[]>;
//# sourceMappingURL=conversation-provenance.d.ts.map