import type { GridEntityType } from "isaac-typescript-definitions";
import type { PostGridEntityBroken } from "../../callbacks/PostGridEntityBroken";
import type { PostGridEntityCustomBroken } from "../../callbacks/PostGridEntityCustomBroken";
import type { PostGridEntityCustomInit } from "../../callbacks/PostGridEntityCustomInit";
import type { PostGridEntityCustomRemove } from "../../callbacks/PostGridEntityCustomRemove";
import type { PostGridEntityCustomStateChanged } from "../../callbacks/PostGridEntityCustomStateChanged";
import type { PostGridEntityCustomUpdate } from "../../callbacks/PostGridEntityCustomUpdate";
import type { PostGridEntityInit } from "../../callbacks/PostGridEntityInit";
import type { PostGridEntityRemove } from "../../callbacks/PostGridEntityRemove";
import type { PostGridEntityStateChanged } from "../../callbacks/PostGridEntityStateChanged";
import type { PostGridEntityUpdate } from "../../callbacks/PostGridEntityUpdate";
import { Feature } from "../../private/Feature";
import type { CustomGridEntities } from "./CustomGridEntities";
type GridEntityTuple = [
    gridEntityType: GridEntityType,
    variant: int,
    state: int
];
export declare class GridEntityUpdateDetection extends Feature {
    v: {
        room: {
            /** Indexed by grid index. */
            initializedGridEntities: Map<int, GridEntityTuple>;
        };
    };
    private readonly postGridEntityInit;
    private readonly postGridEntityCustomInit;
    private readonly postGridEntityUpdate;
    private readonly postGridEntityCustomUpdate;
    private readonly postGridEntityRemove;
    private readonly postGridEntityCustomRemove;
    private readonly postGridEntityStateChanged;
    private readonly postGridEntityCustomStateChanged;
    private readonly postGridEntityBroken;
    private readonly postGridEntityCustomBroken;
    private readonly customGridEntities;
    constructor(postGridEntityInit: PostGridEntityInit, postGridEntityCustomInit: PostGridEntityCustomInit, postGridEntityUpdate: PostGridEntityUpdate, postGridEntityCustomUpdate: PostGridEntityCustomUpdate, postGridEntityRemove: PostGridEntityRemove, postGridEntityCustomRemove: PostGridEntityCustomRemove, postGridEntityStateChanged: PostGridEntityStateChanged, postGridEntityCustomStateChanged: PostGridEntityCustomStateChanged, postGridEntityBroken: PostGridEntityBroken, postGridEntityCustomBroken: PostGridEntityCustomBroken, customGridEntities: CustomGridEntities);
    private readonly postUpdate;
    private checkGridEntitiesRemoved;
    private checkGridEntityStateChanged;
    private checkNewGridEntity;
    private updateTupleInMap;
    private readonly postNewRoomReordered;
}
export {};
//# sourceMappingURL=GridEntityUpdateDetection.d.ts.map