/**
 * Schema validator — validates memory-write inputs against the LoadedSchema
 * produced by schema-loader.ts. Pure function, no I/O, no side effects.
 *
 * Checks run in order; first failure throws with a descriptive message.
 * Every error names the specific violation and the source file that defined
 * the rule so the agent can self-correct on retry.
 *
 *   1. accountId: non-empty trimmed string
 *   2. label: at least one input label is recognised in the loaded schema
 *   3. synonyms: no property key appears in the wrongToCorrect map — this
 *      runs BEFORE required-props so that a `firstName` typo is reported as
 *      "rename firstName → givenName" (actionable) instead of
 *      "missing required property givenName" (leaves the agent to figure
 *      out why their write was incomplete).
 *   4. required properties: for the primary (first recognised) label, every
 *      required group is satisfied — simple groups by presence, any-of
 *      groups by at least one disjunct present
 *
 * "Present" means the properties object has the key and the value is not
 * null, not undefined, and not an empty string after trimming. `0`, `false`,
 * and empty arrays are considered present — those are legitimate values the
 * agent may want to persist.
 */
import type { LoadedSchema } from "./schema-loader.js";
export interface ValidateWriteInput {
    labels: string[];
    properties: Record<string, unknown>;
    accountId?: string;
}
/**
 * Validate a write against the loaded schema. Throws on the first violation.
 * The caller is responsible for logging the error before re-throwing — this
 * function deliberately does not write to stderr so it stays a pure unit.
 */
export declare function validateWrite(input: ValidateWriteInput, schema: LoadedSchema): void;
//# sourceMappingURL=schema-validator.d.ts.map