import { type Item, type List, type ListComponentsDef, type SelectionComponentsDef, type YesNoFieldComponent } from '@defra/forms-model'; import { type ArraySchema, type BooleanSchema, type NumberSchema, type StringSchema } from 'joi'; import { FormComponent } from '~/src/server/plugins/engine/components/FormComponent.js'; import { type ListItem } from '~/src/server/plugins/engine/components/types.js'; import { type ErrorMessageTemplateList, type FormPayload, type FormSubmissionError, type FormSubmissionState } from '~/src/server/plugins/engine/types.js'; export declare class ListFormComponent extends FormComponent { options: Extract['options']; formSchema: ArraySchema | ArraySchema | BooleanSchema | NumberSchema | NumberSchema | StringSchema; stateSchema: ArraySchema | ArraySchema | BooleanSchema | NumberSchema | NumberSchema | StringSchema; list?: List; listType: List['type']; get items(): Item[]; get values(): Item['value'][]; constructor(def: SelectionComponentsDef | (YesNoFieldComponent & Pick), props: ConstructorParameters[1]); getFormValueFromState(state: FormSubmissionState): Item['value'] | Item['value'][] | undefined; getDisplayStringFromFormValue(value: string | number | boolean | Item['value'][] | undefined): string; getDisplayStringFromState(state: FormSubmissionState): string; getViewModel(payload: FormPayload, errors?: FormSubmissionError[]): { items: ListItem[]; label: { text: string; }; id: string; name: string; value: import("~/src/server/plugins/engine/types.js").FormValue; type?: string; hint?: { id?: string; text: string; }; prefix?: import("~/src/server/plugins/engine/components/types.js").ComponentText; suffix?: import("~/src/server/plugins/engine/components/types.js").ComponentText; classes?: string; condition?: string; errors?: FormSubmissionError[]; errorMessage?: { text: string; }; summaryHtml?: string; html?: string; attributes: { autocomplete?: string; maxlength?: number; multiple?: string; accept?: string; inputmode?: string; }; content?: import("~/src/server/plugins/engine/components/types.js").Content | import("~/src/server/plugins/engine/components/types.js").Content[] | string; maxlength?: number; maxwords?: number; rows?: number; fieldset?: { attributes?: string | Record; legend?: import("~/src/server/plugins/engine/components/types.js").Label; }; formGroup?: { classes?: string; attributes?: string | Record; }; showFieldsetError?: boolean; components?: import("~/src/server/plugins/engine/components/types.js").ComponentViewModel[]; upload?: { count: number; summaryList: import("~/src/server/plugins/engine/types.js").SummaryList; }; }; /** * For error preview page that shows all possible errors on a component */ getAllPossibleErrors(): ErrorMessageTemplateList; /** * Static version of getAllPossibleErrors that doesn't require a component instance. */ static getAllPossibleErrors(): ErrorMessageTemplateList; }