import type { z } from "zod"; /** * Structural interface that `validatePlan` and `generatePrompt` accept. Renderer * adapters (e.g. for json-render, A2UI) implement this by wrapping their native * component-declaration format. The default implementation is `defineUIAdapter` * below. * * Binding is not represented in this interface. Props that accept `{ $bind }` * references declare so structurally in their Zod schema (see `bindable()`). * Adapters just hand back the schemas; detection is structural. */ export interface UIAdapter { hasComponent(id: string): boolean; getComponentIds(): string[]; getDescription(id: string): string | undefined; getProps(componentId: string): z.ZodObject | undefined; } export interface UIComponentEntry

= z.ZodObject> { id: string; description?: string; props: P; } /** * Default adapter implementation, useful for tests and for renderers that don't * have a native component-declaration format. Most users should reach for a * renderer-specific adapter (e.g. `toUIAdapter` from `@usecarte/json-render`) — * this is the slow path. */ export declare function defineUIAdapter(entries: ReadonlyArray): UIAdapter; //# sourceMappingURL=ui-adapter.d.ts.map