import { F as FormDef, R as Result, b as FormError, c as CleanSubmission, d as FieldError } from './types-zk5A7OxR.js';
export { a as AntiSpamConfig, A as AntiSpamVerdict, C as ChallengeAdapter, e as FieldDef, f as FieldErrorCode, g as FieldType, h as FormErrorCode, S as StoredSubmission, i as SubmissionValue, j as isFieldError } from './types-zk5A7OxR.js';

/**
 * Structural validation of a form DEFINITION (not a submission). Pure.
 * Catches dup field names, option-types without options, bad pattern source, empty id/fields.
 */
declare function defineForm(def: FormDef): Result<FormDef, FormError[]>;

/**
 * HARD FLOOR. Validate + coerce an untrusted submission against a form.
 * Drops undeclared keys (only declared fields appear in the result), enforces
 * required/min/max/pattern/options, returns typed FieldError[] on failure.
 */
declare function validateSubmission(form: FormDef, raw: Record<string, unknown> | FormData): Result<CleanSubmission, FieldError[]>;

export { CleanSubmission, FieldError, FormDef, FormError, Result, defineForm, validateSubmission };
