import type { Tree } from "web-tree-sitter";
import { type ScriptNode } from "../ast/types.js";
/**
 * TreeSitterToAst converts a Tree-sitter CST into the internal Ag-Bash AST.
 * Handles node mapping, source location tracking, and bash-specific syntax quirks.
 */
export declare class TreeSitterToAst {
    constructor(_source: string);
    /**
     * Convert a complete Tree-sitter tree to a ScriptNode.
     */
    convert(tree: Tree): ScriptNode;
    private convertProgram;
    /**
     * Tree-sitter bash often returns nodes that represent multiple pipelines (a 'list').
     * This helper ensures they are always wrapped in our StatementNode structure.
     */
    private convertElementToStatement;
    private convertListNode;
    private convertNodeToPipeline;
    private convertCommand;
    private convertSimpleCommand;
    private convertAssignment;
    private convertRedirections;
    private convertRedirection;
    private convertHeredoc;
    private convertWord;
    private convertWordPart;
    private convertString;
    private convertExpansion;
    private convertIfStatement;
    private convertForStatement;
    private convertWhileUntilStatement;
    private convertCaseStatement;
    private convertFunctionDefinition;
    private convertSubshell;
    private convertGroup;
    private convertConditionalCommand;
    private convertCondExpression;
    private convertCondBinary;
    private convertCondUnary;
    private convertList;
}
