import type { ParseResult } from "@babel/parser";
import { NodePath } from "@babel/traverse";
import * as t from "@babel/types";
import type { ObjectExpression, ObjectProperty, File, ArrowFunctionExpression, FunctionExpression } from "@babel/types";
export declare function objectToObjectExpression(obj: Record<string, unknown>): t.ObjectExpression;
export declare function objectExpressionToObject<T extends Record<string, unknown> = Record<string, unknown>>(obj: t.ObjectExpression, context?: Record<string, unknown>): T;
export declare function createObjectKey(key: string): t.Identifier | t.StringLiteral;
export declare function stringToTaggedTemplate(str: string): t.TaggedTemplateExpression;
export declare function nodeToValue(node: t.Node, context?: Record<string, unknown>): unknown;
export declare function memberExpressionToParts(node: t.Node): string[];
export declare function getIdentiferName(attr: t.Identifier | t.JSX | t.Expression | t.Private | t.MemberExpression | t.StringLiteral): string | null;
export declare function getTemplateString(node: t.TemplateLiteral): string | null;
export declare function isSbElement(node: t.JSXElement | t.JSXOpeningElement, libraryComponents: string[]): boolean;
export declare function isCustomComponent(tagName: string): boolean;
export declare function getTagName(node: t.JSXElement | t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName): string | null;
export declare function getImportPath(fromFile: string, toFile: string): string;
export declare function addImport({ path, importName, importPath, isDefaultImport, onAdd, }: {
    path: NodePath;
    importName: string;
    importPath: string;
    isDefaultImport?: boolean;
    onAdd: () => void;
}): void;
export declare function getObjectPropertyByKey(expression: NodePath<ObjectExpression>, key: string): NodePath<ObjectProperty> | null;
export declare function extractImportsFromAst(ast: ParseResult<File>): Record<string, string>;
export declare function isScopeFunction(name: string): name is "registerScope" | "registerPage";
export declare function isSbScopeFunction(name: string): name is "createScope";
export declare function extractNameFromBindAttribute(bindAttribute: t.JSXAttribute, identifierOnly?: boolean): string | null;
export declare function getFunctionExpressionBody(node?: ArrowFunctionExpression | FunctionExpression | NodePath<ArrowFunctionExpression | FunctionExpression>): string;
export declare function parseExpression(value: string): t.Expression | null;
export declare function getFunctionBodyThisExpressionData(code: string): {
    hasThisReference: boolean;
    hasReturnStatement: boolean;
};
export declare function canBeAStringLiteral(value: unknown): boolean;
//# sourceMappingURL=util.d.ts.map