/**
 * BuilderBoard
 *
 * Component-snapping game board. The player places components
 * onto slots in a blueprint. Correct placement completes the build.
 *
 * Good for: architecture, circuits, molecules, system design stories.
 *
 * Events emitted via completeEvent (default UI:PUZZLE_COMPLETE).
 */
import React from 'react';
import type { EventEmit } from '@almadar/core';
import type { EntityDisplayProps } from '../../../types';
export interface BuilderComponent {
    id: string;
    label: string;
    description?: string;
    iconEmoji?: string;
    /** Image URL icon (takes precedence over iconEmoji) */
    iconUrl?: string;
    category?: string;
}
export interface BuilderSlot {
    id: string;
    label: string;
    description?: string;
    acceptsComponentId: string;
}
export interface BuilderPuzzleEntity {
    id: string;
    title: string;
    description: string;
    components: BuilderComponent[];
    slots: BuilderSlot[];
    successMessage?: string;
    failMessage?: string;
    hint?: string;
    /** Header image URL displayed above the title */
    headerImage?: string;
    /** Visual theme overrides */
    theme?: {
        background?: string;
        accentColor?: string;
    };
}
export interface BuilderBoardProps extends Omit<EntityDisplayProps, 'entity'> {
    entity: BuilderPuzzleEntity;
    completeEvent?: EventEmit<{
        success: boolean;
        attempts: number;
    }>;
}
export declare function BuilderBoard({ entity, completeEvent, className, }: BuilderBoardProps): React.JSX.Element;
export declare namespace BuilderBoard {
    var displayName: string;
}
