import { type CustomValidator } from 'joi'; import { type EastingNorthingField } from '~/src/server/plugins/engine/components/EastingNorthingField.js'; import { type LatLongField } from '~/src/server/plugins/engine/components/LatLongField.js'; import { type DateInputItem, type Label, type ViewModel } from '~/src/server/plugins/engine/components/types.js'; import { type FormPayload, type FormSubmissionError, type FormValue } from '~/src/server/plugins/engine/types.js'; export type LocationField = InstanceType | InstanceType; export declare function joinWithAnd(items: string[]): string; export declare function formatErrorList(messages: string[]): string; export declare function mergeCssClasses(...classNames: (string | undefined)[]): string | undefined; export declare function deduplicateErrorsByHref(errors?: FormSubmissionError[]): FormSubmissionError[] | undefined; export declare function getLocationFieldViewModel(component: LocationField, viewModel: ViewModel & { label: Label; id: string; name: string; value: FormValue; }, payload: FormPayload, errors?: FormSubmissionError[]): { fieldset: { attributes?: string | Record; legend?: Label; }; items: DateInputItem[]; label: Label; type?: string; id: string; name: string; value: FormValue; 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; 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; }; } | { instructionText: string; fieldset: { attributes?: string | Record; legend?: Label; }; items: DateInputItem[]; label: Label; type?: string; id: string; name: string; value: FormValue; 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; 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; }; }; /** * Validator factory for location-based fields. * This creates a validator that ensures all required fields are present. */ export declare function createLocationFieldValidator(component: LocationField): CustomValidator;