/**
 * SequencerBoard Organism
 *
 * Contains ALL game logic for the Sequencer tier (ages 5-8).
 * Manages the action sequence, validates it, and animates Kekec
 * executing each step on the puzzle scene.
 *
 * Feedback-first UX:
 * - On failure: slots stay in place, each slot gets a green or red
 *   ring showing exactly which steps are correct and which need to change.
 * - Modifying a slot clears its individual feedback so the kid can re-try.
 * - After 3 failures a persistent hint appears above the sequence bar.
 * - "Reset" clears everything including attempts / hint.
 *
 * TraitStateViewer states use indexed labels ("1. Walk", "2. Jump") so that
 * repeated actions are correctly highlighted during playback.
 *
 * @packageDocumentation
 */
import React from 'react';
import type { EventEmit } from '@almadar/core';
import type { SlotItemData } from '../../TraitSlot';
import type { EntityDisplayProps } from '../../../types';
export interface SequencerPuzzleEntity {
    id: string;
    title: string;
    description: string;
    /** Available actions the kid can use */
    availableActions: SlotItemData[];
    /** How many slots in the sequence bar */
    maxSlots: number;
    /** Whether actions can be reused */
    allowDuplicates?: boolean;
    /** The correct sequence(s) — list of action IDs. First match wins. */
    solutions: string[][];
    /** Feedback messages */
    successMessage?: string;
    failMessage?: string;
    /** Progressive hint shown after 3 failures */
    hint?: string;
    /** Hex coordinates for map animation — one per action + starting position */
    path?: Array<{
        x: number;
        y: number;
    }>;
    /** Header image URL displayed above the title */
    headerImage?: string;
    /** Visual theme overrides */
    theme?: {
        background?: string;
        accentColor?: string;
    };
}
export interface SequencerBoardProps extends Omit<EntityDisplayProps, 'entity'> {
    /** Puzzle data */
    entity: SequencerPuzzleEntity;
    /** Category → color mapping */
    categoryColors?: Record<string, {
        bg: string;
        border: string;
    }>;
    /** Playback speed in ms per step */
    stepDurationMs?: number;
    /** Emits UI:{playEvent} with { sequence: string[] } */
    playEvent?: EventEmit<{
        sequence: string[];
    }>;
    /** Emits UI:{completeEvent} with { success: boolean } */
    completeEvent?: EventEmit<{
        success: boolean;
        sequence: string[];
    }>;
}
export declare function SequencerBoard({ entity, categoryColors, stepDurationMs, playEvent, completeEvent, className, }: SequencerBoardProps): React.JSX.Element;
export declare namespace SequencerBoard {
    var displayName: string;
}
export default SequencerBoard;
