import type { WorkspacePostMetaInventoryEntry } from '../workspace/workspace-inventory-types.js'; /** * Field metadata extracted from a typed post-meta schema for a generated block * bindings source. * * @property fallbackValue Editor preview value used when live post meta is unavailable. * @property label Human-readable label derived from the schema property name. * @property name Top-level schema property name used as the binding `field` arg. * @property required Whether the field is listed in the schema's required array. * @property schemaType Resolved JSON Schema type used to choose a preview value. */ export interface PostMetaBindingField { fallbackValue: string; label: string; name: string; required: boolean; schemaType: string; } /** * Load and extract binding fields from a post-meta JSON Schema artifact. * * @param projectDir Workspace root directory. * @param postMeta Post-meta inventory entry that points to the schema file. * @returns Promise resolving to the extracted top-level binding fields. * @throws If the schema cannot be read or does not expose object properties. */ export declare function loadPostMetaBindingFields(projectDir: string, postMeta: WorkspacePostMetaInventoryEntry): Promise; /** * Synchronously load and extract binding fields from a post-meta JSON Schema artifact. * * @param projectDir Workspace root directory. * @param postMeta Post-meta inventory entry that points to the schema file. * @returns Extracted top-level binding fields. * @throws If the schema cannot be read or does not expose object properties. */ export declare function loadPostMetaBindingFieldsSync(projectDir: string, postMeta: WorkspacePostMetaInventoryEntry): PostMetaBindingField[]; /** * Validate and resolve a top-level post-meta binding path. * * @param fields Binding fields extracted from the post-meta schema. * @param postMetaSlug Post-meta contract slug used in diagnostics. * @param metaPath User-provided field path to validate. * @returns The matching binding field. * @throws If the path is empty, nested, or missing from the schema fields. */ export declare function assertPostMetaBindingPath(fields: readonly PostMetaBindingField[], postMetaSlug: string, metaPath: string): PostMetaBindingField;