/**
 * TileRenderer
 *
 * Renders isometric tiles using Three.js InstancedMesh for performance.
 * Supports texture mapping and custom tile geometries.
 *
 * @packageDocumentation
 */
import React from 'react';
import type { IsometricTile } from '../../types/isometric';
export interface TileRendererProps {
    /** Array of tiles to render */
    tiles: IsometricTile[];
    /** Grid cell size */
    cellSize?: number;
    /** Grid offset X */
    offsetX?: number;
    /** Grid offset Z */
    offsetZ?: number;
    /** Use instancing for performance */
    useInstancing?: boolean;
    /** Terrain color mapping */
    terrainColors?: Record<string, string>;
    /** Called when tile is clicked */
    onTileClick?: (tile: IsometricTile) => void;
    /** Called when tile is hovered */
    onTileHover?: (tile: IsometricTile | null) => void;
    /** Selected tile IDs */
    selectedTileIds?: string[];
    /** Valid move tile coordinates */
    validMoves?: Array<{
        x: number;
        z: number;
    }>;
    /** Attack target coordinates */
    attackTargets?: Array<{
        x: number;
        z: number;
    }>;
}
/**
 * TileRenderer Component
 *
 * Renders grid tiles with instancing for optimal performance.
 *
 * @example
 * ```tsx
 * <TileRenderer
 *     tiles={tiles}
 *     cellSize={1}
 *     onTileClick={handleTileClick}
 *     validMoves={[{ x: 1, z: 1 }]}
 * />
 * ```
 */
export declare function TileRenderer({ tiles, cellSize, offsetX, offsetZ, useInstancing, terrainColors, onTileClick, onTileHover, selectedTileIds, validMoves, attackTargets, }: TileRendererProps): React.JSX.Element;
export default TileRenderer;
