import { JSXAttribute, JSXElement, JSXExpressionContainer, JSXFragment, JSXIdentifier, JSXMemberExpression, JSXNamespacedName, JSXSpreadAttribute, JSXText, JSXSpreadChild } from '@babel/types';
export interface NaslViewContext {
    variableNames?: string[];
    logics?: string[];
}
export interface NaslViewElement {
    concept: 'ViewElement';
    tag: string;
    name: string;
    staticStyle?: string;
    staticClass?: string;
    slotTarget?: string;
    slotScope?: string;
    bindAttrs: any[];
    bindEvents: any[];
    bindDirectives: any[];
    bindRoles: any[];
    bindStyles: any[];
    children: NaslViewElement[];
}
export declare const EVENT_REGEX: RegExp;
export declare function getJSXName(ast: JSXIdentifier | JSXNamespacedName | JSXMemberExpression): string;
export declare function transformJSXChildNode(node: JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment): NaslViewElement | null;
export declare function parseJSXElement2Slot(ele: JSXElement | JSXFragment | Array<JSXElement | JSXFragment>, attrName: string, argName: string): NaslViewElement;
export declare function parseJSXExpression(ast: JSXElement | JSXFragment | JSXExpressionContainer, attrName: string, element: NaslViewElement): void;
export declare function parseJSXAttr(attr: JSXAttribute | JSXSpreadAttribute, element: NaslViewElement): void;
export declare function transformJSXElement2Nasl(element: JSXElement): NaslViewElement;
export default transformJSXElement2Nasl;
