/**
 * Semantic Block Registry
 *
 * This registry maps semantic concepts to available UI blocks for AI-driven
 * site generation. Each block entry contains:
 * - id: Unique identifier for the block
 * - name: Human-readable name
 * - description: What the block does and when to use it
 * - semanticTags: Array of semantic concepts this block represents
 * - category: Block category (about, features, cta, testimonials, etc.)
 * - component: Reference to the actual component
 * - props: TypeScript type for the component's props
 * - exampleUsage: Code example showing how to use the block
 */
interface BlockRegistryEntry<T = any> {
    id: string;
    name: string;
    description: string;
    semanticTags: string[];
    category: BlockCategory;
    component: React.ComponentType<T>;
    props: string;
    exampleUsage: string;
}
type BlockCategory = "about" | "features" | "cta" | "testimonials" | "services" | "hero" | "footer" | "header" | "pricing" | "team" | "stats" | "faq" | "contact" | "carousel" | "gallery" | "timeline" | "process" | "benefits" | "comparison" | "background-pattern-hero" | "blog" | "article" | "case-studies-list" | "case-study-detail" | "navbar" | "logos" | "project-list" | "project-detail" | "list" | "offer-modal" | "banner" | "industries" | "resource-detail" | "service-detail" | "services-list" | "resource-list" | "link-page";
/**
 * Block Registry - Central registry of all available UI blocks
 */
declare const BLOCK_REGISTRY: Record<string, BlockRegistryEntry>;
/**
 * Get blocks by semantic tag
 */
declare function getBlocksBySemanticTag(tag: string): BlockRegistryEntry[];
/**
 * Get blocks by category
 */
declare function getBlocksByCategory(category: BlockCategory): BlockRegistryEntry[];
/**
 * Get block by ID
 */
declare function getBlockById(id: string): BlockRegistryEntry | undefined;
/**
 * Get all available blocks
 */
declare function getAllBlocks(): BlockRegistryEntry[];
/**
 * Get all categories
 */
declare function getAllCategories(): BlockCategory[];
/**
 * Search blocks by query (searches name, description, and semantic tags)
 */
declare function searchBlocks(query: string): BlockRegistryEntry[];

export { BLOCK_REGISTRY, type BlockCategory, type BlockRegistryEntry, getAllBlocks, getAllCategories, getBlockById, getBlocksByCategory, getBlocksBySemanticTag, searchBlocks };
