/** * Shared, scope-unaware resolver for WebExtension API usage in a JS AST. * Handles `chrome.*`/`browser.*` member chains plus destructuring, * `webextension-polyfill` imports, and simple aliasing. Works on any * ESTree-compatible tree (acorn output or ESLint's AST). */ export interface ScanNode { type?: string; name?: string; value?: unknown; computed?: boolean; property?: ScanNode; object?: ScanNode; source?: ScanNode; init?: ScanNode; id?: ScanNode; key?: ScanNode; callee?: ScanNode; arguments?: ScanNode[]; specifiers?: ScanNode[]; local?: ScanNode; properties?: ScanNode[]; loc?: { start: { line: number; column: number; }; }; [key: string]: unknown; } export interface ScannedRef { path: string; node: ScanNode; } export declare function scanApiUsage(root: ScanNode): ScannedRef[];