import * as _babel_traverse from '@babel/traverse';
import { types, PluginPass } from '@babel/core';

type ElementState = {
    tagExpr: types.Expression;
    tagName: string | undefined | null;
    args: any[];
    call?: any;
    pure: boolean;
    callee?: any;
};
interface Options {
    filter?: (node: types.Node, pass: PluginPass) => boolean;
    pre?: (state: ElementState, pass: PluginPass) => void;
    post?: (state: ElementState, pass: PluginPass) => void;
    compat?: boolean;
    pure?: string;
    throwIfNamespace?: boolean;
    useSpread?: boolean;
    useBuiltIns?: boolean;
}
declare function export_default(opts: Options): _babel_traverse.VisitorBase<PluginPass<Options>>;

export { type Options, export_default as default };
