import ts from "typescript"; import { IJsxAttrs } from "../../utils"; import { IComplexLogicExpression, IPropsExpression, IStateExpression, ImportGenerator, JsxElementGenerator } from "../../core"; import { BasicHelper } from "./helper.basic"; import { IJsxAttrDefine } from "../../core/typescript/jsx-attribute"; import { IJsxElementDefine } from "../../core/typescript/jsx-element"; export interface IFrontLibImports { default?: string; named: Array; } export interface IFrontLibImportOptions { libRoot: string; styleRoot: string; module: string; libName?: string; imports: Array | IFrontLibImports; nameCase?: "camel" | "kebab"; } export declare class ReactHelper extends BasicHelper { readonly DEFAULT_CONTEXT_NAME: string; readonly DEFAULT_ROOT_CONTEXT_NAME = "__CONTEXT__"; readonly DEFINE_IS_REGEXP: RegExp; readonly CEVALUE_REGEXP: RegExp; createViewElement(tagnname: string, attrs?: Record, children?: IJsxElementDefine[]): JsxElementGenerator; createJsxElement(tagName: string, types: ts.TypeNode[], attrs: IJsxAttrs, children?: (ts.JsxChild | string)[]): ts.JsxElement; createReactPropsAccess(propName: string, options?: Partial<{ defaultValue: any; checkOperatorForDefaultValue: "||" | "??"; }>): ts.Expression; createReactPropsMixinAccess(propName: string, obj: Record): ts.ObjectLiteralExpression; createJsxArrowEventHandler(expression: ts.Expression): ts.JsxExpression; updateJsxElementAttr(gen: JsxElementGenerator, name: string, value: ts.StringLiteral | ts.JsxExpression): void; createFrontLibImports(options: IFrontLibImportOptions): ImportGenerator[]; useStateExpression(exp: IStateExpression, contextName: string): string; useObserverExpression(exp: IStateExpression, contextName: string): string; usePropExpression(exp: IPropsExpression): string; useComplexLogicExpression(exp: IComplexLogicExpression["expression"], contextName: string): string; useBindExpression(target: string, contextName?: string): string | undefined; private useReverse; } export declare function updateJsxElementAttr(element: ts.JsxSelfClosingElement | ts.JsxElement, name: string, value: ts.StringLiteral | ts.JsxExpression): ts.JsxElement | ts.JsxSelfClosingElement;