/**
 * StateArchitectBoard Organism
 *
 * Contains ALL game logic for the State Architect tier (ages 13+).
 * Kids design state machines via a visual graph editor, then run
 * them to see if the behavior matches the puzzle goal.
 *
 * @packageDocumentation
 */
import React from 'react';
import type { EntityDisplayProps } from '../../../types';
import { type VariableDef } from './VariablePanel';
export interface StateArchitectTransition {
    id: string;
    from: string;
    to: string;
    event: string;
    guardHint?: string;
}
export interface TestCase {
    /** Sequence of events to fire */
    events: string[];
    /** Expected final state */
    expectedState: string;
    /** Description */
    label: string;
}
export interface StateArchitectPuzzleEntity {
    id: string;
    title: string;
    description: string;
    hint: string;
    /** Entity being designed */
    entityName: string;
    /** Variables with initial values */
    variables: VariableDef[];
    /** States provided (kid may need to add more) */
    states: string[];
    /** Initial state */
    initialState: string;
    /** Pre-existing transitions (puzzle may have some already) */
    transitions: StateArchitectTransition[];
    /** Events available to use */
    availableEvents: string[];
    /** States available to add */
    availableStates?: string[];
    /** Test cases to validate against */
    testCases: TestCase[];
    /** Show code view toggle */
    showCodeView?: boolean;
    /** Feedback */
    successMessage?: string;
    failMessage?: string;
    /** Header image URL displayed above the title */
    headerImage?: string;
    /** Visual theme overrides */
    theme?: {
        background?: string;
        accentColor?: string;
    };
}
export interface StateArchitectBoardProps extends Omit<EntityDisplayProps, 'entity'> {
    /** Puzzle data */
    entity: StateArchitectPuzzleEntity;
    /** Playback speed */
    stepDurationMs?: number;
    /** Emits UI:{testEvent} */
    testEvent?: string;
    /** Emits UI:{completeEvent} with { success, passedTests } */
    completeEvent?: string;
}
export declare function StateArchitectBoard({ entity, stepDurationMs, testEvent, completeEvent, className, }: StateArchitectBoardProps): React.JSX.Element;
export declare namespace StateArchitectBoard {
    var displayName: string;
}
export default StateArchitectBoard;
