import type { NodePath } from '@babel/traverse';
import type { ArrayExpression, BinaryExpression, CallExpression, ExportAllDeclaration, ExportDeclaration, ExportDefaultDeclaration, ExportNamedDeclaration, LogicalExpression, Node, ObjectExpression, StringLiteral, TemplateElement, TemplateLiteral, VariableDeclarator } from '@babel/types';
import type { ImportToken } from './node-path-walker/import-tokens.js';
export type { ImportToken } from './node-path-walker/import-tokens.js';
export declare class NodePathWalker {
    ignoreCallExpressionIdentifiers: (string | RegExp)[];
    callback: (path: NodePath<StringLiteral | TemplateElement>) => void;
    private isIgnoredCallIdentifier;
    private hasIgnoredCallIdentifiers;
    private importsStore;
    private visitedStore;
    constructor({ ignoreCallExpressionIdentifiers, callback }?: {
        ignoreCallExpressionIdentifiers?: (string | RegExp)[];
        callback?: (path: NodePath<StringLiteral | TemplateElement>) => void;
    });
    get imports(): Set<ImportToken>;
    private getWritableImports;
    private addImportToken;
    private getVisited;
    walkVariableDeclarator(path: NodePath<VariableDeclarator>): void;
    walkTemplateLiteral(path: NodePath<TemplateLiteral>): void;
    walkStringLiteral(path: NodePath<StringLiteral>): void;
    walkBinaryExpression(path: NodePath<BinaryExpression>): void;
    walkLogicalExpression(path: NodePath<LogicalExpression>): void;
    walkObjectExpression(path: NodePath<ObjectExpression>): void;
    walkArrayExpression(path: NodePath<ArrayExpression>): void;
    walkNode(arg: NodePath<Node | null | undefined>): void;
    walkCallExpression(path: NodePath<CallExpression>): void;
    walkExportDeclaration(path: NodePath<ExportDeclaration>): void;
    walkExportNamedDeclaration(path: NodePath<ExportNamedDeclaration>): void;
    walkExportDefaultDeclaration(path: NodePath<ExportDefaultDeclaration>): void;
    walkExportAllDeclaration(path: NodePath<ExportAllDeclaration>): void;
}
