import * as t from "@babel/types";
import type { NodePath } from "@babel/traverse";
import type { Node } from "@babel/types";
import type { PropertyInfo, SbElement } from "@superblocksteam/library-shared/types";
type GenerateJSXChild = {
    id?: SbElement;
    tagName: string;
    properties: Record<string, PropertyInfo>;
    children: GenerateJSXChild[];
};
export declare function generateJSXElement({ id, tagName, properties, children, }: {
    id?: SbElement;
    tagName: string;
    properties: Record<string, PropertyInfo>;
    children: GenerateJSXChild[];
}): t.JSXElement;
export declare function generateJSXAttribute(name: string, info: PropertyInfo): t.JSXAttribute;
export declare function writeNestedProperty({ node, paths, info, isDelete, }: {
    node: NodePath<Node>;
    paths: string[];
    info: PropertyInfo;
    isDelete?: boolean;
}): void;
export declare function getPropertyExpression(info: PropertyInfo, fieldName?: string): t.Expression;
export {};
//# sourceMappingURL=codegen.d.ts.map