import { type MetaData, type ResponseFormat } from "@metaobjectsdev/metadata"; /** What an inbound generator needs about one responding prompt. */ export interface InboundShape { /** The resolved response value-object — the shape a reply is parsed INTO. */ readonly vo: MetaData; /** The `@responseRef` string as authored (bare or fully-qualified). */ readonly ref: string; /** * The syntax of the REPLY (ADR-0053) — never the template's `@format`, which is * the syntax of the rendered prompt BODY. The two genuinely differ. */ readonly format: ResponseFormat; } /** * Every `template.prompt` that declares a response shape, in declaration order. * * The gate is `@responseRef` PRESENCE, not a format value: declaring a response * shape is the request for a parser. Gating on `@format` was what let a `text` * template get a strict parser but no tolerant extract, and — because `@format` * defaults to `text` — would silently emit nothing at all after the re-homing. * * ADR-0039: resolving accessors throughout. A root has no super, but a template * may inherit `@responseRef` from an abstract base via `extends`, and three * shipped fixtures rely on exactly that. */ export declare function inboundTemplates(root: MetaData): MetaData[]; /** * Resolve a prompt's response value-object and reply syntax. * * Returns `undefined` when the template declares no `@responseRef` or the ref does * not resolve — callers skip rather than throw, matching the pre-ADR-0052 contract * for an unresolvable payload ref. */ export declare function responseShape(root: MetaData, tmpl: MetaData): InboundShape | undefined; /** * The declared reply syntax, defaulted per ADR-0053. * * The default is `json` because that reproduces the trace helper's pre-ADR-0053 * fallback exactly (anything that was not `"xml"` was treated as JSON), which is * what makes the attribute's introduction behaviour-preserving rather than a new * policy. */ export declare function responseFormatOf(tmpl: MetaData): ResponseFormat; //# sourceMappingURL=find-inbound.d.ts.map