import { Component, DefineComponent } from 'vue'; import { R as Registry, b as RemoteFetchOptions, E as EvalContext } from './remote-B5coCv6B.js'; import { P as PageSchema, V as VariantList, S as SchemaPatch, R as RendererDiagnostic } from './schema-C4Hcw2Y6.js'; interface VueRendererOptions { /** Default schema (used when no variants supplied and no remote). */ schema?: PageSchema; /** Optional variants; first match provides `base` + `with` patches. */ variants?: VariantList; /** Component registry. Sync loaders are wrapped with defineAsyncComponent. */ registry: Registry; /** Additional schema patches applied after the variant's patches and remote merge. */ patches?: SchemaPatch[]; /** Fetch a remote schema URL; result is merged over the variant/base schema. */ remote?: Omit; /** Evaluation context roots forwarded to walker / conditions. */ state?: Record; flags?: Record; env?: Record; data?: Record; /** Action handlers keyed by action `type`. */ actions?: Record, ctx: EvalContext) => void>; /** Fallback native element (string tag) used when a component is missing. Default `'div'`. */ fallbackTag?: string; /** Receives diagnostics. */ onDiagnostic?: (d: RendererDiagnostic) => void; /** * Runtime-validate the base schema with zod before rendering. * * Default: `false`. Static JSON schemas imported at build time are * already TS-checked via the `PageSchema` type; running zod on them * bloats the client bundle by ~50KB. Turn this on only when you pass * an `options.remote.url` (remote payloads are always validated * regardless of this flag) or when you explicitly want defensive * parsing of user-authored schemas. */ validate?: boolean; } /** * Create a Vue component that renders a page from a config-driven schema. * * Flow: * 1. Pick base schema: variants.resolveVariant(ctx) ?? options.schema. * 2. Merge with variant.with. * 3. If remote is configured, fetch and merge over. * 4. Merge options.patches last. * 5. Walk + render. */ declare function createConfiguredPage(options: VueRendererOptions): DefineComponent; export { type VueRendererOptions, createConfiguredPage };