import * as t from '@babel/types';
import { IScope } from '../types';
/**
 * 是否是广义上的 JSFunction
 * @param value
 * @returns
 */
export declare function isBroadJSFunction(value: unknown): boolean;
export declare function generateExpression(value: any, scope: IScope): string;
/**
 * 生成函数代码
 *
 * @param value 函数或表达式
 * @param config 配置对象，包含以下属性：
 * - name: 函数名称，可选
 * - isMember: 是否为成员函数，默认为false
 * - isBlock: 是否为块级函数，默认为false
 * - isArrow: 是否为箭头函数，默认为false
 * - isBindExpr: 是否为绑定表达式，默认为false
 * - isToVue 是否转化为vue（state，this转换）
 * - isDeleteLastSemicolon 是否删除生成代码最后的一个分号，默认为false
 * - isBelongTemplate 是否是template的表达式
 * @returns 返回生成的函数代码
 * @throws 当 value 不是 JSFunction 或 JSExpression 时抛出 CodeGeneratorError
 */
export declare function generateFunction(value: any, config?: {
    name?: string;
    isMember?: boolean;
    isBlock?: boolean;
    isArrow?: boolean;
    isBindExpr?: boolean;
    isToVue?: boolean;
    isDeleteLastSemicolon?: boolean;
    isBelongTemplate?: boolean;
}): string;
/**
 * 解析给定的字符串内容为js表达式。
 * @note 使用babel转化为ast树，再对树进行处理
 * @param content 要解析的字符串内容。
 * @param isToVue
 * @param isBelongTemplate 是否是template的表达式
 * @returns 解析成功的表达式节点，如果解析失败则返回null。
 * @throws 如果解析过程中发生错误，将抛出ParseError异常。
 */
export declare function parseExpression(content: string, isToVue?: boolean, isBelongTemplate?: boolean): t.FunctionExpression | null;
/**
 * 解析js表达式获取this.state.xxx 的xxx
 * @param content
 */
export declare function parseExpressionGetState(content: string): Set<string>;
