/** * Fail-closed validation before field-level conflict evaluation. * * These checks reject ambiguous identity, invalid normalized values, schema * drift, and unsupported operation shapes before any canonical field CAS is * considered. */ import type { NormalizedCell } from "../../encoding/types.js"; import type { CanonicalResolution, ObservedFieldChange, ObservedRowChange, OwnershipManifest, RowOperation, RowBindingContext } from "../model/types.js"; import type { EvaluationContext, PreconditionResult, StructuralPreconditionResult } from "./contracts.js"; /** Summary of editable and system-owned fields in one observed row. */ export interface OwnershipCheckResult { readonly hasSystemField: boolean; readonly hasUserField: boolean; readonly systemFields: readonly { fieldName: string; value: NormalizedCell; }[]; } /** Validates raw input and promotes it to an operation-specific row type. */ export declare function validateStructuralPreconditions(input: unknown): StructuralPreconditionResult; /** Checks whether the operation is legal for the row binding's current state. */ export declare function validateBindingState(operation: RowOperation, binding: RowBindingContext): PreconditionResult; /** Rejects a row that references a field absent from the ownership manifest. */ export declare function validateManifestFields(fields: readonly ObservedFieldChange[], manifest: OwnershipManifest): PreconditionResult; /** Applies operation-specific evidence, required-field, and unique-key checks. */ export declare function validateOperationPreconditions(row: ObservedRowChange, binding: RowBindingContext, canonical: CanonicalResolution, context: EvaluationContext): PreconditionResult; /** Separates illegal system fields from user-owned fields without resolving them. */ export declare function inspectOwnership(fields: readonly ObservedFieldChange[], manifest: OwnershipManifest): OwnershipCheckResult; //# sourceMappingURL=preconditions.d.ts.map