/** * Field sync policy — durable / realtime / derived (ADR 0018 Phase 1). * * @module trellis/core/ontology/sync-policy */ import type { FieldSyncTier, PropertyValueSpecification, SchemaDefinition } from './types.js'; /** Thrown when a durable mutate includes a `sync:realtime` field. */ export declare class RealtimeFieldError extends Error { readonly field: string; readonly status = 400; constructor(field: string); } /** Thrown when create is asked for an id that already exists. */ export declare class EntityConflictError extends Error { readonly id: string; readonly status = 409; constructor(id: string); } /** * Resolve the effective sync tier for a property. * * - explicit `sync` wins * - formula / rollup / computed → derived * - otherwise durable */ export declare function effectiveFieldSync(field: PropertyValueSpecification): FieldSyncTier; /** Find a registered schema for an entity type name (open-world tolerant). */ export declare function findSchemaForType(ontologies: Iterable, type: string): SchemaDefinition | undefined; /** * Filter attribute bags for durable create/update. * * - unknown fields (no schema / no field spec) → keep (open-world) * - derived → strip * - realtime → throw {@link RealtimeFieldError} * - durable → keep */ export declare function filterDurableAttributes>(attributes: T, schema: SchemaDefinition | undefined): T; //# sourceMappingURL=sync-policy.d.ts.map