type U32 = Uint32Array;
export interface DirtyFrontierReverseGraph {
    getDependents(entityId: number): U32;
}
export interface DirtyFrontierResult {
    dirtyFormulaCellIndices: U32;
    dirtyFormulaCount: number;
    rangeNodeVisits: number;
}
export declare class DirtyFrontier {
    private cellEpoch;
    private rangeEpoch;
    private exactLookupEpoch;
    private sortedLookupEpoch;
    private visitedCells;
    private visitedRanges;
    private visitedExactLookupColumns;
    private visitedSortedLookupColumns;
    private entityQueue;
    private dirtyFormulaIds;
    collectDirty(changedRoots: readonly number[] | U32, graph: DirtyFrontierReverseGraph, hasFormula: (cellIndex: number) => boolean, cellCount: number, rangeCount: number): DirtyFrontierResult;
    private ensureCellCapacity;
    private ensureRangeCapacity;
    private ensureEntityQueueCapacity;
    private ensureDirtyCapacity;
}
export {};
