import type { JsonValue, ManifestAttribute, ManifestConstraints, ManifestDocument } from '../migration/migration-types.js'; /** * Default placeholder copy used for generated compound child body fields. */ export declare const DEFAULT_COMPOUND_CHILD_BODY_PLACEHOLDER = "Add supporting details for this internal item."; type StarterManifestSourceType = NonNullable; type WordPressAttributeSource = NonNullable; interface StarterManifestAttributeDefinition { constraints?: Partial; defaultValue?: JsonValue; enumValues?: Array | null; kind: ManifestAttribute['ts']['kind']; required: boolean; selector?: string | null; source?: WordPressAttributeSource | null; sourceType: StarterManifestSourceType; } interface BlockJsonAttributeDefinition { defaultValue?: JsonValue; enumValues?: Array | null; selector?: string; source?: WordPressAttributeSource; type: StarterManifestSourceType; } export interface AttributeDescription { lines: string[]; } /** * Emitted attribute metadata shared between block.json, manifest, and type emitters. */ export interface EmittedAttributeDefinition { blockJson: BlockJsonAttributeDefinition; description?: AttributeDescription; manifest: StarterManifestAttributeDefinition; name: string; optional: boolean; typeExpression: string; } type BuiltInAttributeValueResolver = TValue | ((context: TContext) => TValue); export interface BuiltInAttributeTemplateSpec { attributeType: 'boolean' | 'number' | 'string'; blockJsonDefaultValue?: BuiltInAttributeValueResolver; constraints?: BuiltInAttributeValueResolver | undefined>; defaultValue?: BuiltInAttributeValueResolver; description?: BuiltInAttributeValueResolver; enumValues?: BuiltInAttributeValueResolver | null | undefined>; manifestDefaultValue?: BuiltInAttributeValueResolver; name: string; optional: boolean; selector?: BuiltInAttributeValueResolver; source?: BuiltInAttributeValueResolver; typeExpression: BuiltInAttributeValueResolver; } export declare function describe(...lines: string[]): AttributeDescription; export declare function buildAttributesFromSpecs(specs: readonly BuiltInAttributeTemplateSpec[], context: TContext): EmittedAttributeDefinition[]; /** * Builds the manifest document for a generated built-in block artifact. * * @param sourceType Generated TypeScript source type name referenced by the manifest. * @param attributes Emitted attribute definitions used to populate the manifest. * @returns A starter manifest document for the generated block. */ export declare function buildManifestDocument(sourceType: string, attributes: readonly EmittedAttributeDefinition[]): ManifestDocument; /** * Builds the block.json attributes object for a generated built-in block artifact. * * @param attributes Emitted attribute definitions used to populate block.json. * @returns A block.json-compatible attributes record. */ export declare function buildBlockJsonAttributes(attributes: readonly EmittedAttributeDefinition[]): Record>; /** * Builds the canonical block preview examples derived from emitted defaults, * enums, and supported scalar constraints. */ export declare function buildBlockJsonExampleAttributes(attributes: readonly EmittedAttributeDefinition[]): Record; export {};