import { Project, Node } from 'ts-morph';
import { SymbolLocation } from '../types';
/**
 * シンボルの定義と参照を検索するクラス
 */
export declare class SymbolFinder {
    private project;
    private nodeUtils;
    /**
     * コンストラクタ
     * @param project ts-morphのプロジェクトインスタンス
     */
    constructor(project: Project);
    /**
     * シンボルの定義ノードを見つける
     * @param symbolName シンボル名
     * @returns 定義ノード（見つからない場合はundefined）
     */
    findDefinitionNode(symbolName: string): Node | undefined;
    /**
     * 定義情報を抽出する
     * @param definitionNode 定義ノード
     * @returns 定義情報
     */
    extractDefinitionInfo(definitionNode: Node): SymbolLocation;
    /**
     * シンボルの参照を収集する
     * @param symbolName シンボル名
     * @param definitionNode 定義ノード
     * @param includeInternalReferences 内部参照を含めるかどうか
     * @returns 参照情報の配列
     */
    collectReferences(symbolName: string, definitionNode: Node, includeInternalReferences?: boolean): SymbolLocation[];
    /**
     * 参照情報を抽出する
     * @param node 参照ノード
     * @param currentFile 現在のファイルパス
     * @returns 参照情報
     */
    private extractReferenceInfo;
}
