import type React from 'react'; import type { CanvasGraph } from '../graph-projection.js'; import type { YarramateOperation } from '../operations.js'; import type { VisualKindOption } from '../adapters/visual/protocol-contract.js'; /** * Making a subject, the counterpart to the connection tool. * * The kinds come from the workspace's own profile, sent with every model * frame, so nothing here decides what a workspace may contain. The id is * derived from the name rather than asked for: an id is a stable address a * human reads in a diff, and a reviewer thinking about a name writes worse ids * than a transliteration of the name does. It is shown before landing, because * a derived address the author never saw is one nobody agreed to. */ export declare const SubjectDraftPanel: ({ graph, kinds, documents, defaultDocument, initialKind, reservedIds, onStage, onCancel, }: { readonly graph: CanvasGraph; readonly kinds: readonly VisualKindOption[]; readonly documents: readonly string[]; readonly defaultDocument: string; /** A kind the reviewer picked up on the way in - dragged from the palette * or clicked there (#295). Their own choice arriving with the gesture, not * a default this form chose for them, so the no-default rule below stands. */ readonly initialKind?: string; /** * Ids the pending changeset already claims. The graph only knows what has * landed, so without these a second subject slugging to the same id * proposed it again and replace-by-target staging swallowed the first * silently (#315). Required rather than defaulted: a caller has to say * what is staged, even when the answer is nothing. */ readonly reservedIds: readonly string[]; readonly onStage: (operation: YarramateOperation) => void; readonly onCancel: () => void; }) => React.ReactElement;