import type { BlockManifest } from './schema';
import type { StyleGroups } from '@riverbankcms/theme-core/schema';
/**
 * Augments a block manifest with synthetic fields and other transformations.
 * This should be called at the block definition level, not at runtime.
 *
 * Current augmentations:
 * - Adds a variant select field if the manifest has multiple variants
 *
 * Future augmentations might include:
 * - Theme field injection
 * - Spacing/layout presets
 * - Animation controls
 */
export declare function augmentManifest(manifest: BlockManifest): BlockManifest;
/**
 * Augments a block manifest with a styleGroup field when the theme defines
 * style groups for the given block kind.
 *
 * Style groups are visual presets (unlike variants which change layout/structure).
 * The selected style group renders as a `data-style-group` attribute on the block
 * wrapper, targetable in `blockCustomCssRules`.
 *
 * This function is idempotent - it won't add a duplicate styleGroup field.
 *
 * @param manifest - The block manifest to augment
 * @param styleGroups - Theme's styleGroups config (blockKind -> group names)
 * @param blockKind - The block kind to look up (e.g., 'hero', 'body-text').
 *   May include 'block.' prefix which will be stripped.
 * @returns The augmented manifest (or original if no style groups defined)
 *
 * @example
 * ```typescript
 * const augmented = augmentManifestWithStyleGroups(
 *   heroManifest,
 *   { hero: ['bold', 'minimal', 'featured'] },
 *   'hero'
 * );
 * // Adds a styleGroup select field with options: bold, minimal, featured
 * ```
 */
export declare function augmentManifestWithStyleGroups(manifest: BlockManifest, styleGroups: StyleGroups | undefined, blockKind: string): BlockManifest;
