import type { ScriptGraph } from './NodeGraph';
import { NodeLibrary } from './NodeGraph';
import type { ASTScript } from './ScriptAST';
export interface ConvertOptions {
    /** Name for the generated class */
    className?: string;
    /** Base class to extend */
    baseClass?: string;
    /** Whether to generate async methods for delay/wait nodes */
    useAsync?: boolean;
    /** Whether to generate comments showing node IDs */
    includeNodeIds?: boolean;
    /** Prefix for generated variable names */
    varPrefix?: string;
}
export declare class GraphToAST {
    private library;
    constructor(library?: NodeLibrary);
    /**
     * Convert a visual script graph to AST representation.
     */
    convert(graph: ScriptGraph, options?: ConvertOptions): ASTScript;
    /**
     * Convert multiple graphs into a single script module.
     */
    convertMultiple(graphs: ScriptGraph[], moduleName: string, options?: ConvertOptions): ASTScript;
    private findEntryNodes;
    private entryTypeToMethodName;
    private convertVariables;
    private valueToASTType;
    private convertEntryPointsToMethod;
    private getEntryParams;
    private createEmptyMethod;
    private processNode;
    private generateNodeCode;
    private generateFlowNode;
    private generateIfElse;
    private generateDelay;
    private generateForLoop;
    private generateWhileLoop;
    private generateMathNode;
    private generateLogicNode;
    private generateVariableNode;
    private generateEntityNode;
    private generateInputNode;
    private generateAudioNode;
    private generateGenericNode;
    private resolveInputExpression;
    private valueToExpression;
    private getOrCreateNodeVar;
    private getFlowTargetNodes;
    private followFlowConnections;
}
export declare function convertGraphToAST(graph: ScriptGraph, library: NodeLibrary, options?: ConvertOptions): ASTScript;
export default GraphToAST;
