import type { EvaluationPair } from "./shared.js";
import type { SyntaxNode } from "@lezer/common";
/**
 * Extracts external identifiers from Python code using Lezer parser with scope tracking.
 * This function identifies identifiers that are referenced but not declared locally.
 *
 * Uses a three-pass approach:
 * Pass 1: Collect all locally declared identifiers
 * Pass 2: Collect all imported identifiers
 * Pass 3: Extract member expressions and filter out local/imported identifiers and Python builtins
 *
 * @param code - The Python code to analyze
 * @param timeoutMs - Maximum time to spend parsing (default: 5000ms). Returns empty array on timeout.
 */
export declare function extractExternalIdentifiersFromPython(code: string, timeoutMs?: number): string[];
/**
 * Handles:
 * - import os → "os"
 * - import os.path → "os"
 * - from datetime import datetime → "datetime"
 * - import numpy as np → "np" (alias)
 */
export declare function collectImportedIdentifiers(code: string, node: SyntaxNode, signal?: AbortSignal): Set<string>;
/**
 * Pass 1: Collect all locally declared identifiers using tree traversal
 */
export declare function collectLocalIdentifiers(code: string, node: SyntaxNode, signal?: AbortSignal): Set<string>;
export declare const extractPythonEvaluationPairs: (pythonSnippet: string) => Promise<EvaluationPair[]>;
export declare const extractPythonEvaluationBindings: (pythonSnippet: string) => Promise<string[]>;
//# sourceMappingURL=python-identifiers.d.ts.map