/** * One attached state of a binding: the state selector, the templates it attaches * (attach-on-use — a not-yet-attached pick shows the "attached on save" hint), the subject * and scope expressions, the input injections, and the updates. */ import { type ReactNode } from 'react'; import type { BindingSourceSchemas, BindingStateOption, BindingTemplateOption, StateAttach, TemplatedText, TemplatedTextCatalog } from './types'; /** The subject/scope of the target's own (inherited) binding for a state this one also names. */ export interface InheritedSubject { readonly subject_expr: TemplatedText; readonly scope_expr: TemplatedText | null; } export interface StateAttachRowProps { readonly attach: StateAttach; readonly onChange: (attach: StateAttach) => void; readonly onRemove: () => void; readonly statesCatalog: readonly BindingStateOption[]; readonly templatesCatalog: readonly BindingTemplateOption[]; readonly sources?: BindingSourceSchemas; readonly subjectError?: string; /** The target's own binding subject for this state, when it also binds it (precedence). */ readonly inherited?: InheritedSubject; /** The stored templates a templated-text field's id picker offers. */ readonly templates?: TemplatedTextCatalog; } export declare function StateAttachRow({ attach, onChange, onRemove, statesCatalog, templatesCatalog, sources, subjectError, inherited, templates, }: StateAttachRowProps): ReactNode; //# sourceMappingURL=StateAttachRow.d.ts.map