/**
 * GameCanvas3DCastleTemplate
 *
 * Pure declarative template wrapper for 3D castle/settlement view.
 * Shows castle layout with buildings and garrisoned units.
 *
 * Page: Castle3DPage, Settlement3DPage
 * Entity: Castle3D, Settlement3D
 * ViewType: detail
 *
 * Events Emitted:
 * - BUILDING_SELECTED - When a building is clicked
 * - UNIT_SELECTED - When a garrison unit is clicked
 * - BUILD - When building/upgrading
 * - RECRUIT - When recruiting units
 * - EXIT - When exiting castle view
 *
 * @packageDocumentation
 */
import React from 'react';
import type { IsometricTile, IsometricUnit, IsometricFeature } from '../organisms/game/types/isometric';
import type { TemplateProps } from './types';
export interface Castle3DEntity {
    /** Castle grounds tiles */
    tiles: IsometricTile[];
    /** Garrisoned units */
    units: IsometricUnit[];
    /** Buildings and structures */
    features: IsometricFeature[];
    /** Castle name */
    name?: string;
    /** Castle level */
    level?: number;
    /** Owner faction */
    owner?: string;
    /** Entity ID */
    id: string;
}
export interface GameCanvas3DCastleTemplateProps extends TemplateProps<Castle3DEntity> {
    /** 3D camera mode */
    cameraMode?: 'isometric' | 'perspective' | 'top-down';
    /** Show grid helper */
    showGrid?: boolean;
    /** Enable shadows */
    shadows?: boolean;
    /** Background color */
    backgroundColor?: string;
    /** Event name for building clicks */
    buildingClickEvent?: string;
    /** Event name for unit clicks */
    unitClickEvent?: string;
    /** Event name for build action */
    buildEvent?: string;
    /** Event name for recruit action */
    recruitEvent?: string;
    /** Event name for exit */
    exitEvent?: string;
    /** Currently selected building ID */
    selectedBuildingId?: string | null;
    /** Available build positions */
    availableBuildSites?: Array<{
        x: number;
        z: number;
    }>;
    /** Show castle name header */
    showHeader?: boolean;
    /** Pre-computed selected tile IDs array */
    selectedTileIds?: string[];
}
/**
 * GameCanvas3DCastleTemplate Component
 *
 * Template for 3D castle/settlement management view.
 *
 * @example
 * ```tsx
 * <GameCanvas3DCastleTemplate
 *     entity={castleEntity}
 *     cameraMode="isometric"
 *     showHeader={true}
 *     buildingClickEvent="SELECT_BUILDING"
 *     buildEvent="BUILD_STRUCTURE"
 * />
 * ```
 */
export declare function GameCanvas3DCastleTemplate({ entity, cameraMode, showGrid, shadows, backgroundColor, buildingClickEvent, unitClickEvent, buildEvent, recruitEvent, exitEvent, selectedBuildingId, selectedTileIds, availableBuildSites, showHeader, className, }: GameCanvas3DCastleTemplateProps): React.JSX.Element | null;
export declare namespace GameCanvas3DCastleTemplate {
    var displayName: string;
}
export default GameCanvas3DCastleTemplate;
