import { type Schema, type UiSchemaRoot, type ValidationError, type FormValue, type ValidatorFactoryOptions, type MergerFactoryOptions, type FormMerger, type UiOptionsRegistry, type Creatable, type FormValidator } from "@sjsf/form"; import type { MaybePromise } from "@sjsf/form/lib/types"; import { type ActionFailure, type RequestEvent } from "@sveltejs/kit"; import { type EntryConverter, type EnumItemDecoder, type SendData, type ValidatedFormData } from "../model.js"; import { type IdOptions } from "../id-builder.js"; import { type FormDataConverterOptions, type UnknownEntryConverter } from "../internal/convert-form-data-entry.js"; export interface FormHandlerOptions extends Omit { schema: Schema; uiSchema?: UiSchemaRoot; uiOptionsRegistry?: UiOptionsRegistry; idIndexSeparator?: string; validator: Creatable, ValidatorFactoryOptions>; merger: Creatable; createEntryConverter?: Creatable, FormDataConverterOptions>; convertUnknownEntry?: UnknownEntryConverter; enumItemDecoder?: EnumItemDecoder; /** @default false */ sendData?: SD; /** By default, handles conversion of `File` */ createReviver?: (formData: FormData) => (key: string, value: any) => any; escapeCharacter?: string; } export declare function createFormHandler({ schema, uiSchema, uiOptionsRegistry, merger: createMerger, validator: createValidator, createEntryConverter, convertUnknownEntry, propertySeparator, indexSeparator, pseudoSeparator, escapeCharacter, sendData, createReviver, enumItemDecoder, }: FormHandlerOptions): (signal: AbortSignal, formData: FormData) => Promise<[ValidatedFormData, T | FormValue, (errors: ValidationError[]) => ValidatedFormData]>; export declare function isValid(vfd: ValidatedFormData, _data: unknown): _data is T; type FormRecord = { [K in F]: ValidatedFormData; }; interface FormMeta { idPrefix: string; } export declare function createAction | void>(options: FormHandlerOptions & { name: F; }, userAction: (data: T, event: E, meta: Readonly) => MaybePromise): (event: E) => Promise<(FormRecord & R) | ActionFailure>>; export {};