import { type IOutputModelFactory } from "../../IOutputModelFactory.js";
import { SrcOp } from "../SrcOp.js";
import { type Decl } from "./Decl.js";
export declare class CodeBlock extends SrcOp {
    codeBlockLevel: number;
    treeLevel: number;
    locals: Set<Decl>;
    preamble: SrcOp[];
    ops: SrcOp[];
    constructor(factory: IOutputModelFactory);
    constructor(factory: IOutputModelFactory, treeLevel: number, codeBlockLevel: number);
    /** Add local var decl */
    addLocalDecl(d: Decl): void;
    addPreambleOp(op: SrcOp): void;
    addOp(op: SrcOp): void;
    insertOp(i: number, op: SrcOp): void;
    addOps(ops: SrcOp[]): void;
}
