import type { CffLimits } from "../../../../context/write";
import { Mir, type MirNonTerminal } from "../../mir";
import type { SubroutineAnalyzer, SubroutineAnalyzerFactory } from "../subr/general";
import { NTRuleStub, Rule, type RuleSet } from "../subr/rule-set";
import { type NonTerminalBuilder, type RuleBuilder } from "./pairing";
export declare class PairingAnalyzer implements NonTerminalBuilder<Mir>, RuleBuilder<Mir, NTRuleStub, Rule>, SubroutineAnalyzer {
    private pairSession;
    private inputs;
    addInput(limits: CffLimits, seq: Iterable<Mir>): void;
    private nNonTerminal;
    createNonTerminal(a: Mir, b: Mir): MirNonTerminal;
    createNonTerminalRule(symbol: Mir, parts: Mir[]): NTRuleStub;
    createInputRule(parts: Mir[]): Rule;
    analyze(into: RuleSet): void;
}
export declare const Pairing: SubroutineAnalyzerFactory;
//# sourceMappingURL=analyzer.d.ts.map