import { TileConfig } from './WFCTileConfig';
import { NeighbourData } from '../geometry/modules/quad/graph/QuadGraph';
import { QuadNode } from '../geometry/modules/quad/graph/QuadNode';
import { NeighbourIndex } from '../geometry/modules/quad/graph/QuadGraphCommon';
import { QuadObject } from '../geometry/modules/quad/QuadObject';
export declare class WFCFloorGraph {
    readonly quadObject: QuadObject;
    readonly floorIndex: number;
    private _quadGraph;
    private _quadNodeByQuadId;
    private _allowedTileConfigsByQuadId;
    constructor(quadObject: QuadObject, floorIndex: number);
    setupQuadNode(index: number, allTileConfigs: TileConfig[]): {
        quadNode: QuadNode;
        quadTileConfigs: TileConfig[];
    };
    resetQuadNode(quadNode: QuadNode, allTileConfigs: TileConfig[]): {
        quadTileConfigs: TileConfig[];
    };
    quadNodeFromId(quadId: number): QuadNode | undefined;
    quadNodeFromOtherQuadNode(otherGraphQuadNode: QuadNode): QuadNode | undefined;
    allowedTileConfigsForQuadNode(quadNode: QuadNode): TileConfig[] | undefined;
    setAllowedTileConfigsForQuadNode(quadNode: QuadNode, tileConfigs: TileConfig[]): void;
    neighbourData(quadId: number, sideIndex: NeighbourIndex, target: NeighbourData): void;
}
