import type { ExternalSignatureMap } from './ecosystem-signatures.js'; import { type ExternalBoundary, type ExternalImportBinding, type SidecarManifest, type SidecarPackage } from './external-boundary.js'; import type { ExternalImportRegistry, ExternalImportTarget } from './import-metadata.js'; import type { IRNode } from './types.js'; export interface ExternalNamedBinding { name: string; alias: string; } export type ExternalImportSymbolKind = 'module' | 'function' | 'type' | 'sideEffect'; export interface ExternalImportSymbol { localName: string; kind: ExternalImportSymbolKind; package: string; registry: ExternalImportRegistry; target: ExternalImportTarget; targetFamily: 'all' | 'ts' | 'python' | 'none'; from?: string; sourceName?: string; signature?: string; signatures?: ExternalSignatureMap; sidecarName?: string; runtime?: string; boundary?: ExternalBoundary; binding?: ExternalImportBinding; line?: number; col?: number; } export interface ExternalImportSymbolTable { symbols: ExternalImportSymbol[]; byLocalName: Map; byPackage: Map; conflicts: ExternalImportSymbolConflict[]; } export interface ExternalImportSymbolConflict { localName: string; symbols: ExternalImportSymbol[]; } export interface ExternalSignatureDiagnostic { package: string; registry: ExternalImportRegistry; name: string; reason: 'not-imported'; line?: number; col?: number; } export declare function parseExternalNamedBinding(raw: string): ExternalNamedBinding | null; export declare function signatureMapForSidecarPackage(sidecarPackage: SidecarPackage): ExternalSignatureMap; export declare function collectExternalImportSymbols(root: IRNode): ExternalImportSymbolTable; export declare function buildExternalImportSymbolTable(boundaries: ExternalBoundary[], sidecarManifests?: SidecarManifest[]): ExternalImportSymbolTable; export declare function externalSignatureDiagnostics(root: IRNode): ExternalSignatureDiagnostic[];