import { Visitor, type Program, type Span } from 'oxc-parser'; import type { PluginVisitorObject } from '../../types/config.ts'; import type { GetImportsAndExportsOptions } from '../../types/config.ts'; import type { Fix } from '../../types/exports.ts'; import type { IssueSymbol, SymbolType } from '../../types/issues.ts'; import type { Export, ExportMember, ImportMap, ImportMaps } from '../../types/module-graph.ts'; import { type ResolveModule } from './helpers.ts'; interface WalkContext { lineStarts: number[]; skipExports: boolean; options: GetImportsAndExportsOptions; exports: Map; aliasedExports: Map; specifierExportNames: Set; scripts: Set; addImport: (specifier: string, identifier: string | undefined, alias: string | undefined, namespace: string | undefined, pos: number, modifiers: number, specifierPos?: number, jsDocTags?: Set) => void; addNsMemberRefs: (internalImport: ImportMaps, namespace: string, member: string | string[]) => void; addImportAlias: (aliasName: string, id: string, filePath: string) => void; internal: ImportMap; localImportMap: Map; localDeclarationTypes: Map; importAliases: Map>; referencedInExport: Map>; skipBareExprRefs: boolean; localRefs: Set | undefined; destructuredExports: Set; hasNodeModuleImport: boolean; hasWorkerThreadsImport: boolean; hasChildProcessImport: boolean; hasPathJoinImport: boolean; hasPathResolveImport: boolean; resolveModule: ResolveModule; programFiles: Set; entryFiles: Set; visitor: Visitor; getJSDocTags: (nodeStart: number) => Set; } export interface WalkState extends WalkContext { filePath: string; sourceText: string; isJS: boolean; handledImportExpressions: Set; bareExprRefs: Set; accessedAliases: Set; nsContainers: Map>; accessedNsContainers: Set; chainedMemberExprs: WeakSet; currentVarDeclStart: number; nsRanges: [number, number][]; memberRefsInFile: string[]; scopeDepth: number; scopeStarts: number[]; scopeEnds: number[]; shadowScopes: Map; addExport: (identifier: string, type: SymbolType, pos: number, members: ExportMember[], fix: Fix, isReExport: boolean, jsDocTags: Set) => void; getFix: (start: number, end: number, flags?: number) => Fix; getTypeFix: (start: number, end: number) => Fix; collectRefsInType: (node: any, exportName: string, signatureOnly: boolean) => void; addRefInExport: (name: string, exportName: string) => void; isInNamespace: (node: Span) => boolean; } export declare const isShadowed: (name: string, pos: number) => boolean; export declare function buildVisitor(pluginVisitorObjects: PluginVisitorObject[], includeLocalRefs?: boolean): Visitor; export declare function walkAST(program: Program, sourceText: string, filePath: string, ctx: WalkContext): Set | undefined; export {};