import type { ErrorManager } from "../tool/ErrorManager.js";
import type { CommonTree } from "./CommonTree.js";
import { CommonTreeNodeStream } from "./CommonTreeNodeStream.js";
import { TreeParser } from "./TreeParser.js";
export declare class TreeRewriter extends TreeParser {
    private originalTokenStream;
    constructor(errorManager: ErrorManager, input: CommonTreeNodeStream);
    downUp(t: CommonTree): CommonTree;
    /**
     * Methods the down-up strategy uses to do the up and down rules. To override, just define tree grammar rule
     * topdown and turn on filter = true.
     *
     * @returns the tree created from applying the down-up rules
     */
    protected topdown: () => CommonTree | undefined;
    protected bottomup: () => CommonTree | undefined;
    private applyOnce;
    private applyRepeatedly;
}
