import { ComponentType, type ComponentDef } from '@defra/forms-model'; import { type ComponentBase } from '~/src/server/plugins/engine/components/ComponentBase.js'; import { ListFormComponent } from '~/src/server/plugins/engine/components/ListFormComponent.js'; import * as Components from '~/src/server/plugins/engine/components/index.js'; import { type FormState } from '~/src/server/plugins/engine/types.js'; export type Component = InstanceType<(typeof Components)[keyof typeof Components]>; export type Field = InstanceType; export type Guidance = InstanceType | InstanceType | InstanceType | InstanceType | InstanceType; export type ListField = InstanceType; export declare const designerUrl: string; export { markdown } from '~/src/server/plugins/engine/components/markdownParser.js'; /** * Filter known components with lists */ export declare function hasListFormField(field?: Partial): field is ListFormComponent; export declare function isListFieldType(type?: ComponentType): type is ListField['type']; /** * Create field instance for each {@link ComponentDef} type */ export declare function createComponent(def: ComponentDef, options: ConstructorParameters[1]): Component; /** * Get formatted answer for a field */ export declare function getAnswer(field: Field, state: FormState, options?: { format: 'data' | 'email' | 'summary'; }): string; /** * Get formatted answer for a field (Markdown only) */ export declare function getAnswerMarkdown(field: Field, state: FormState, options?: { format: 'email' | 'summary'; }): string;