import type { CanvasEdge, CanvasNode } from '../graph-projection.js'; import type { VisualRenderedModel } from '../adapters/visual/wire.js'; import type { YarramateOperation } from '../operations.js'; /** * The editable twin of the read-only inspector: every field `apply-command.ts` * knows how to splice, as a dropdown-constrained control, staged through * `onStageChange` rather than written straight to the model. Nothing here * writes a document — that is the server's job once the reviewer commits. */ declare const CONCEPT_SCALAR_FIELDS: readonly ['kind', 'name', 'description', 'status', 'owner']; declare const CONCEPT_LIST_FIELDS: readonly ['aka', 'constraints', 'references', 'presentIn', 'attestations', 'distinctFrom', 'supersedes']; declare const RELATIONSHIP_SCALAR_FIELDS: readonly ['kind', 'from', 'to', 'name', 'description', 'status', 'mode', 'content']; declare const RELATIONSHIP_LIST_FIELDS: readonly ['references', 'presentIn']; type ConceptScalarField = (typeof CONCEPT_SCALAR_FIELDS)[number]; type ConceptListField = (typeof CONCEPT_LIST_FIELDS)[number]; type RelationshipScalarField = (typeof RELATIONSHIP_SCALAR_FIELDS)[number]; type RelationshipListField = (typeof RELATIONSHIP_LIST_FIELDS)[number]; type ConstraintRow = CanvasNode['constraints'][number]; type AttestationRow = CanvasNode['attestations'][number]; export declare const stageConceptScalarChange: (document: string, id: string, field: ConceptScalarField, previous: string | null, next: string) => readonly YarramateOperation[]; export declare const stageRelationshipScalarChange: (document: string, id: string, field: RelationshipScalarField, previous: string | null, next: string) => readonly YarramateOperation[]; export declare const stageConceptListChange: (document: string, id: string, field: ConceptListField, previous: readonly T[], next: readonly T[]) => readonly YarramateOperation[]; export declare const stageRelationshipListChange: (document: string, id: string, field: RelationshipListField, previous: readonly T[], next: readonly T[]) => readonly YarramateOperation[]; export declare const stageConstraintsChange: (document: string, id: string, previous: readonly ConstraintRow[], next: readonly ConstraintRow[]) => readonly YarramateOperation[]; export declare const stageAttestationsChange: (document: string, id: string, previous: readonly AttestationRow[], next: readonly AttestationRow[]) => readonly YarramateOperation[]; export declare const overlayConceptFields: (node: CanvasNode, operations: readonly YarramateOperation[]) => CanvasNode; export declare const overlayRelationshipFields: (edge: CanvasEdge, operations: readonly YarramateOperation[]) => CanvasEdge; /** * The shape a reference has (#531): the document schema's `reference` - * an id, optionally qualified by its document (`finance-it`, * `main#finance-it`). Said at input time, so the form does not accept a * name the commit will refuse with YM201. */ export declare const REFERENCE_PATTERN: RegExp; export declare const REFERENCE_HINT = "An id, like finance-it or main#finance-it: lowercase letters, digits and single hyphens."; export interface ConceptFormProps { readonly node: CanvasNode; readonly model: VisualRenderedModel; readonly operations: readonly YarramateOperation[]; readonly onStageChange: (operation: YarramateOperation) => void; } export declare const responsibilityFacts: (node: CanvasNode, model: VisualRenderedModel) => readonly { readonly key: string; readonly label: string; readonly value: string; }[]; export declare const ConceptForm: ({ node, model, operations, onStageChange }: ConceptFormProps) => import("react").JSX.Element; export declare const ConceptFacts: ({ node, model, }: { readonly node: CanvasNode; readonly model: VisualRenderedModel; }) => import("react").JSX.Element; export declare const RelationshipFacts: ({ edge, model, }: { readonly edge: CanvasEdge; readonly model: VisualRenderedModel; }) => import("react").JSX.Element; export interface RelationshipFormProps { readonly edge: CanvasEdge; readonly model: VisualRenderedModel; readonly operations: readonly YarramateOperation[]; readonly onStageChange: (operation: YarramateOperation) => void; } export declare const RelationshipForm: ({ edge, model, operations, onStageChange }: RelationshipFormProps) => import("react").JSX.Element; export {};