export class ThemeEngine {
    /**
     *
     * @type {QuadTreeNode<AreaTheme>}
     */
    areas: QuadTreeNode<AreaTheme>;
    /**
     * @readonly
     * @type {function():number}
     */
    readonly random: () => number;
    /**
     *
     * @type {AssetManager}
     * @private
     */
    private __assetManager;
    set assetManager(arg: any);
    /**
     *
     * @param {number} v
     */
    set seed(arg: number);
    /**
     *
     * @returns {number}
     */
    get seed(): number;
    /**
     *
     * @param {AreaTheme} theme
     */
    add(theme: AreaTheme): void;
    /**
     *
     * @param {AreaTheme[]} result
     * @param {number} x
     * @param {number} y
     * @returns {number}
     */
    getThemesByPosition(result: AreaTheme[], x: number, y: number): number;
    /**
     *
     * @param {number} seed
     * @param {EntityComponentDataset} ecd
     * @param {GridData} grid
     * @returns {Task}
     */
    initializeThemes(seed: number, ecd: EntityComponentDataset, grid: GridData): Task;
    /**
     *
     * @param {GridData} grid
     * @param {Terrain} terrain
     * @returns {TaskGroup}
     */
    applyTerrainThemes(grid: GridData, terrain: Terrain): TaskGroup;
    /**
     *
     * @param {GridData} grid
     * @param {EntityComponentDataset} ecd
     * @param {number} seed
     * @returns {Task|TaskGroup}
     */
    applyNodes(grid: GridData, ecd: EntityComponentDataset, seed?: number): Task | TaskGroup;
    /**
     *
     * @param {GridData} grid
     * @param {EntityComponentDataset} ecd
     */
    applyCellRules(grid: GridData, ecd: EntityComponentDataset): Task;
    /**
     *
     * @param {Terrain} terrain
     * @returns {Task}
     */
    updateTerrain(terrain: Terrain): Task;
    /**
     *
     * @returns {TaskGroup}
     * @param {EntityComponentDataset} ecd
     */
    optimize(ecd: EntityComponentDataset): TaskGroup;
    /**
     *
     * @param {GridData} grid
     * @param {EntityComponentDataset} ecd
     * @returns {TaskGroup}
     */
    apply(grid: GridData, ecd: EntityComponentDataset): TaskGroup;
}
import { QuadTreeNode } from "../../core/geom/2d/quad-tree/QuadTreeNode.js";
import Task from "../../core/process/task/Task.js";
import TaskGroup from "../../core/process/task/TaskGroup.js";
//# sourceMappingURL=ThemeEngine.d.ts.map