import { type DeclarationFieldComponent, type Item } from '@defra/forms-model';
import { type ArraySchema, type BooleanSchema, type StringSchema } from 'joi';
import { FormComponent } from '../../../../server/plugins/engine/components/FormComponent.js';
import { type ErrorMessageTemplateList, type FormPayload, type FormState, type FormStateValue, type FormSubmissionError, type FormSubmissionState, type FormValue } from '../../../../server/plugins/engine/types.js';
export declare class DeclarationField extends FormComponent {
    private readonly DEFAULT_DECLARATION_LABEL;
    options: DeclarationFieldComponent['options'];
    declarationConfirmationLabel: string;
    formSchema: ArraySchema<StringSchema[]>;
    stateSchema: BooleanSchema;
    content: string;
    headerStartLevel: number;
    constructor(def: DeclarationFieldComponent, props: ConstructorParameters<typeof FormComponent>[1]);
    getFormValueFromState(state: FormSubmissionState): "true" | "false";
    getFormDataFromState(state: FormSubmissionState): FormPayload;
    getStateFromValidForm(payload: FormPayload): FormState;
    getContextValueFromFormValue(value: FormValue | FormPayload): boolean;
    getFormValue(value?: FormStateValue | FormState): (string | number | boolean)[] | undefined;
    getDisplayStringFromFormValue(value: FormValue | FormPayload): string;
    getViewModel(payload: FormPayload, errors?: FormSubmissionError[]): {
        hint: {
            text: string;
        } | undefined;
        fieldset: {
            attributes?: string | Record<string, string>;
            legend?: import("./types.js").Label;
        };
        content: string;
        items: {
            text: string;
            value: string;
            checked: boolean;
        }[];
        headerStartLevel: number;
        label: {
            text: string;
        };
        id: string;
        name: string;
        value: FormValue;
        type?: string;
        prefix?: import("./types.js").ComponentText;
        suffix?: import("./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;
        };
        maxlength?: number;
        maxwords?: number;
        rows?: number;
        formGroup?: {
            classes?: string;
            attributes?: string | Record<string, string>;
        };
        showFieldsetError?: boolean;
        components?: import("./types.js").ComponentViewModel[];
        upload?: {
            count: number;
            summaryList: import("../../../../server/plugins/engine/types.js").SummaryList;
        };
    };
    isValue(value?: FormStateValue | FormState): value is Item['value'][];
    /**
     * 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;
    static isBool(value?: FormStateValue | FormState): value is boolean;
}
