import { z } from "zod"; /** * Schema for a `{ $bind: "fieldName" }` reference inside a panel's component props. * Adapters and consumers can include this directly in their own union schemas; the * `bindable()` helper below is sugar for the common case. */ export declare const bindRefSchema: z.ZodObject<{ $bind: z.ZodString; }, z.core.$strip>; export type BindRef = z.infer; /** * Sugar for `z.union([inner, bindRefSchema])`. Marks a slot as accepting either * a literal value or a `{ $bind: "fieldName" }` reference resolved against the * panel's query result. * * The schema itself is the source of truth — `validatePlan` and renderer adapters * detect bindability structurally by walking the union for a bind-ref branch. No * registry, no metadata to keep in sync. */ export declare function bindable(inner: T): z.ZodUnion]>; export declare function isBindRef(value: unknown): value is BindRef; /** True if `schema` is a union containing a bind-ref-shaped branch. */ export declare function isBindable(schema: z.ZodType): boolean; /** * Returns the literal-value schema(s) of a bindable union — the type a slot * accepts when the value is *not* a bind ref. Returns `undefined` if `schema` * isn't bindable. If multiple non-bind branches exist, they are re-wrapped into * a fresh union. */ export declare function getBindableInner(schema: z.ZodType): z.ZodType | undefined; //# sourceMappingURL=bindable.d.ts.map