/**
 * IR Visitor Pattern
 *
 * Base class for IR transformations and analysis
 */
import type { IRProgram, IRModule, IRDeclaration, IRFunctionDecl, IRClassDecl, IRBlock, IRInstruction, IRExpr } from './types.js';
/**
 * Generic visitor for IR traversal
 */
export declare abstract class IRVisitor<T = void> {
    visitProgram(program: IRProgram): T;
    visitModule(module: IRModule): T;
    visitDeclaration(decl: IRDeclaration): T;
    visitFunction(_func: IRFunctionDecl): T;
    visitClass(_cls: IRClassDecl): T;
    visitBlock(block: IRBlock): T;
    visitInstruction(instruction: IRInstruction): T;
    visitExpr(expr: IRExpr): T;
}
//# sourceMappingURL=visitor.d.ts.map