import type { ILogger } from '@visactor/vutils';
import type { IDataflow } from '../types/dataflow';
import type { IDataflowCallback, IGrammarBase } from '../types';
export default class Dataflow implements IDataflow {
    logger: ILogger;
    private grammars;
    private _curRank;
    private _committed?;
    private _heap?;
    private _beforeRunner?;
    private _afterRunner?;
    private _updateCounter;
    private _finishFirstRender?;
    constructor();
    add(grammar: IGrammarBase): boolean;
    remove(grammar: IGrammarBase): void;
    private _setRankOfGrammar;
    private _reRank;
    private _enqueue;
    private _logGrammarRunInfo;
    hasCommitted(): boolean;
    commit(grammar: IGrammarBase): this;
    private _beforeEvaluate;
    private _enqueueTargets;
    evaluate(): boolean;
    runBefore(callback?: IDataflowCallback): void;
    runAfter(callback?: IDataflowCallback): void;
    release(): void;
}
