/** * The adapter mapping form for a NAMED update. It renders one row per declared * input key of the update jq; each row picks ONE of three value sources — a picked * field (from the run's output / input schema, when a schema is known), a hardcoded * literal, or a jq expression — and the whole form compiles into ONE adapter jq over * `{ output, input }` that constructs the update jq's declared input object. Each * row shows its own jq on demand, and the whole compiled adapter is shown on demand. * * A raw-jq escape hatch (`Write jq`) authors the adapter directly when the mapping needs * more than the row form expresses. An update that declares NO input needs no adapter, so * it shows a tool-output passthrough and stores `null` (the escape hatch stays available). * * The stored value always equals what the form shows (WYSIWYG): an accepted default is * emitted on mount, so it is never left as the empty string the platform's save refuses. * The emitted adapter is a non-empty jq or `null`, never `''`. */ import { type ReactNode } from 'react'; import { type TemplateJqSuggestion } from './BindingJqField'; import type { BindingSourceSchemas } from './types'; export interface AdapterMappingProps { /** The declared input keys of the update jq — one row each. Empty ⇒ raw jq only. */ readonly declaredInput: readonly string[]; /** The current adapter jq (compiled or authored) stored on the update; `''` ⇒ none stored. */ readonly value: string; /** Emits the adapter to store: a non-empty jq, or `null` for no adapter (never `''`). */ readonly onChange: (adapterJq: string | null) => void; /** The output / input field paths a picker offers. */ readonly sources?: BindingSourceSchemas; /** Template jq offered as `tjq_({…})` inserts in the jq escape hatch. */ readonly suggestions?: readonly TemplateJqSuggestion[]; } export declare function AdapterMapping({ declaredInput, value, onChange, sources, suggestions, }: AdapterMappingProps): ReactNode; //# sourceMappingURL=AdapterMapping.d.ts.map