import { type ValidatorEnv } from "../lib/schema-validator.js";
import { type GraphRelationship, type CreatedBy } from "../../../../../lib/graph-write/dist/index.js";
interface WriteParams {
    labels: string[];
    properties: Record<string, unknown>;
    accountId?: string;
    /** Visibility scope for the node (e.g. "public", "shared", "admin", "user:phone:+44..."). Required — caller must specify. */
    scope: string;
    /**
     * At least one relationship required — enforced by writeNodeWithEdges.
     * The doctrine: a node without at least one adjacency is noise, not
     * knowledge. See .docs/neo4j.md (Write doctrine).
     */
    relationships: GraphRelationship[];
    /** Provenance stamp — sourced from the MCP server env vars (agent/session). */
    createdBy: CreatedBy;
    /**
     * Validator environment — markdown sidecar (`schema`) plus the live
     * recognised-label source. Required; built once at server startup by
     * index.ts and passed through on every call. The live source's
     * recognised-label set is read fresh on each validation, so writes after
     * a SchemaCache refresh see the new labels without re-wiring.
     */
    validator: ValidatorEnv;
    /**
     * process-provenance link — the elementId of the `:Task` that
     * is producing this entity. When set, an inbound `:PRODUCED` edge from
     * the Task is composed into `relationships` before the write, satisfying
     * the action-provenance gate in `writeNodeWithEdges`. The Task must
     * exist and share the same accountId; mismatch throws before any write.
     */
    producedByTaskId?: string;
}
interface WriteResult {
    nodeId: string;
    labels: string[];
    created: boolean;
}
export declare function memoryWrite(params: WriteParams): Promise<WriteResult>;
/** Parse the violated property name and value from a Neo4j constraint error message. */
export declare function parseConstraintProperty(message: string): {
    propName: string;
    propValue: string;
} | null;
export declare function buildTextRepresentation(labels: string[], properties: Record<string, unknown>): string;
export {};
//# sourceMappingURL=memory-write.d.ts.map