import { ComponentMetadata, FormDefinition, GenericDataSchema, StudioComponent, StudioForm, StudioNode, StudioTemplateRenderer, FormFeatureFlags } from '@aws-amplify/codegen-ui'; import { FunctionDeclaration, JsxElement, JsxFragment, JsxSelfClosingElement, Statement } from 'typescript'; import { ImportCollection } from '../imports'; import { ReactOutputManager } from '../react-output-manager'; import { ReactRenderConfig } from '../react-render-config'; import { defaultRenderConfig } from '../react-studio-template-renderer-helper'; declare type RenderComponentOnlyResponse = { compText: string; /** * @deprecated Use {@link RenderComponentOnlyResponse.importCollection} instead. */ importsText: string; requiredDataModels: string[]; importCollection: ImportCollection; }; export declare abstract class ReactFormTemplateRenderer extends StudioTemplateRenderer Promise; }> { protected importCollection: ImportCollection; protected renderConfig: ReactRenderConfig & typeof defaultRenderConfig; protected formDefinition: FormDefinition; protected formComponent: StudioComponent; protected componentMetadata: ComponentMetadata; fileName: string; protected requiredDataModels: string[]; protected shouldRenderArrayField: boolean; protected primaryKeys: string[] | undefined; constructor(component: StudioForm, dataSchema: GenericDataSchema | undefined, renderConfig: ReactRenderConfig, featureFlags?: FormFeatureFlags); renderComponentOnly(): RenderComponentOnlyResponse; renderComponentInternal(): { componentText: string; declaration: string | undefined; formMetadata: import("@aws-amplify/codegen-ui").FormMetadata | undefined; renderComponentToFilesystem: (outputPath: string) => Promise; }; renderFunctionWrapper(componentName: string, variableStatements: Statement[], jsx: JsxElement | JsxFragment | JsxSelfClosingElement, renderExport: boolean): FunctionDeclaration; abstract renderJsx(component: StudioComponent, parent?: StudioNode): JsxElement | JsxFragment | JsxSelfClosingElement; private renderBindingPropsType; /** * Variable Statements need for forms * - props passed into form component * - useState * - form fields * - valid state for form * - error object { hasError: boolean, errorMessage: string } * - datastore operation (conditional if form is backed by datastore) * - this is the datastore mutation function which will be used by the helpers */ private buildVariableStatements; protected validateSchema(component: StudioForm): void; } export {};