import ts from "typescript"; import { BasicState, IPureObject, JsxElementGenerator } from "../../core"; import { ReactHelper } from "./helper.react"; import { IBasicReactContainerState as IS, ReactComponent, VariableRefName } from "../entities"; import { BasicRender, EntityRenderDelegate } from "./render.basic"; export declare class ReactEntityRenderDelegate extends EntityRenderDelegate { protected ref: ReactComponent; protected helper: ReactHelper; getElementById(entityId: string): JsxElementGenerator | null; setElementById(entityId: string, element: any): void; appendJsxAttribute(entityId: string | JsxElementGenerator, name: string, value: ts.JsxExpression | ts.StringLiteral): void; appendState(name: VariableRefName, defaultValue: unknown): void; appendCallback(name: VariableRefName, callback: unknown, deps?: VariableRefName[]): void; appendEffect(name: VariableRefName, callback: unknown, deps?: VariableRefName[]): void; appendRef(name: VariableRefName, defaultValue: unknown): void; appendObserver(name: VariableRefName, defaults?: unknown): void; appendObservable(name: VariableRefName, target: VariableRefName): void; appendVariable(name: VariableRefName, initilizer?: ts.Expression, type?: "push" | "unshift"): void; appendFnBeforeRender(fn: Function): void; appendEleChangeFns(fn: (gen: JsxElementGenerator) => JsxElementGenerator): void; getStates(): (IS & T)[BasicState.UseStates]; getCallbacks(): (IS & T)[BasicState.UseCallbacks]; getEffects(): (IS & T)[BasicState.UseEffects]; getRefs(): (IS & T)[BasicState.UseRefs]; getMemos(): (IS & T)[BasicState.UseMemos]; getObservers(): (IS & T)[BasicState.UseObservers]; getObservables(): (IS & T)[BasicState.UseObservables]; getNamedObserver(name: VariableRefName, target?: "observable" | "next" | "data"): string; createStateAccessSyntax(name: string): string; createEntityRefAccess(directive: string, refname: string): string; appendJsxStyles(entityId: string | JsxElementGenerator, value: Record): void; } export declare class ReactRender = IPureObject> extends BasicRender { readonly helper: ReactHelper; readonly component: ReactEntityRenderDelegate; readonly root: ReactEntityRenderDelegate; protected parentRef: ReactComponent; constructor(helper: ReactHelper, component: ReactEntityRenderDelegate, root: ReactEntityRenderDelegate); } export declare function updateJsxElementStyle(element: ts.JsxElement | ts.JsxSelfClosingElement, obj: ts.ObjectLiteralExpression): ts.JsxElement | ts.JsxSelfClosingElement;