import { ValidationParams, FormFieldParams, FormState, FormFieldState } from "../types";
declare const appendToFormData: (formData: FormData, key: string, value: unknown) => void;
/**
 * Runs validations using the provided state and field params.
 * Makes a cloned, frozen snapshot so validators cannot mutate the live state.
 */
declare const applyValidation: <Data>(currentState: FormState<Data>, formFieldParams: FormFieldParams<Data>, options?: {
    updateAllFieldsError?: boolean | undefined;
} | undefined) => {
    nextState: FormState<Data>;
    allValid: boolean;
};
declare const checkIfRequiredValueFilled: <T>(value: T) => boolean;
declare const createInitialStateSnapshot: <Data>(formFieldParams: FormFieldParams<Data>) => FormState<Data>;
declare const getOrderedValidationEntries: <Value, Data>(validationParams: ValidationParams<Value, Data>) => (readonly [string, {
    validator: (value: Value, formState: FormState<Data>) => boolean;
    message?: string | undefined;
    order?: number | undefined;
}])[];
declare type FieldValidationResult = {
    isValid: boolean;
    error?: FormFieldState["error"];
};
declare const getFieldValidationOutcome: <Data>(key: keyof Data, formFieldParams: FormFieldParams<Data>, state: FormState<Data>) => FieldValidationResult;
export { appendToFormData, applyValidation, checkIfRequiredValueFilled, createInitialStateSnapshot, getOrderedValidationEntries, getFieldValidationOutcome, };
