import { GenericDataSchema, StudioNode, StudioView, StudioTemplateRenderer, TableDefinition, ViewMetadata } from '@aws-amplify/codegen-ui'; import { FunctionDeclaration, JsxElement, JsxFragment, JsxSelfClosingElement, Statement } from 'typescript'; import { defaultRenderConfig } from '../react-studio-template-renderer-helper'; import { ImportCollection } from '../imports'; import { ReactOutputManager } from '../react-output-manager'; import { ReactRenderConfig } from '../react-render-config'; export declare abstract class ReactViewTemplateRenderer extends StudioTemplateRenderer Promise; }> { protected importCollection: ImportCollection; protected renderConfig: ReactRenderConfig & typeof defaultRenderConfig; protected viewDefinition: TableDefinition; protected viewComponent: StudioView; protected viewMetadata: ViewMetadata; fileName: string; abstract renderJsx(view: StudioView, parent?: StudioNode): JsxElement | JsxFragment | JsxSelfClosingElement; constructor(component: StudioView, dataSchema: GenericDataSchema | undefined, renderConfig: ReactRenderConfig); renderComponentOnly(): { compText: string; importsText: string; requiredDataModels: string[]; }; renderComponentInternal(): { componentText: string; declaration: string | undefined; renderComponentToFilesystem: (outputPath: string) => Promise; }; renderFunctionWrapper(componentName: string, variableStatements: Statement[], jsx: JsxElement | JsxFragment | JsxSelfClosingElement, renderExport: boolean): FunctionDeclaration; buildVariableStatements(): Statement[]; private predicateToObjectLiteralExpression; private renderBindingPropsType; validateSchema(component: StudioView): void; }