import { IntervalSet } from "antlr4ng";
import { GrammarAST } from "../../tool/ast/GrammarAST.js";
import { IOutputModelFactory } from "../IOutputModelFactory.js";
import { Choice } from "./Choice.js";
import { CodeBlockForAlt } from "./CodeBlockForAlt.js";
import { OutputModelObject } from "./OutputModelObject.js";
import { SrcOp } from "./SrcOp.js";
export declare abstract class LL1Loop extends Choice {
    /** The state associated wih the (A|B|...) block not loopback, which is super.stateNumber */
    blockStartStateNumber: number;
    loopBackStateNumber: number;
    loopExpr: OutputModelObject | null;
    iteration: SrcOp[];
    constructor(factory: IOutputModelFactory, blkAST: GrammarAST, alts: CodeBlockForAlt[]);
    addIterationOp(op: SrcOp): void;
    addCodeForLoopLookaheadTempVar(look: IntervalSet): SrcOp | null;
}
