import { BaseSchema } from "../schemas/base.js"; import type { AnyValiDocument, ParseResult } from "../types.js"; export type FormSchemaSource = AnyValiDocument | BaseSchema; export type ValidationTrigger = "input" | "change" | "blur" | "submit"; export interface InitFormOptions { schema: FormSchemaSource; validateOn?: ValidationTrigger[]; nativeValidation?: boolean; htmx?: boolean; reportValidity?: boolean; } export interface FormController { form: HTMLFormElement; document: AnyValiDocument; validate(): boolean; getValues(): unknown; getResult(): ParseResult; destroy(): void; } export interface CreateFormBindingsOptions { schema: FormSchemaSource; errorIdPrefix?: string; } export interface HtmxConfig { get?: string; post?: string; put?: string; patch?: string; delete?: string; target?: string; swap?: string; trigger?: string; select?: string; validate?: boolean; confirm?: string; include?: string; encoding?: string; ext?: string; indicator?: string; pushUrl?: string; replaceUrl?: string; } export declare function createFormBindings(options: CreateFormBindingsOptions): { field(path: string, attrs?: Record): { [x: string]: unknown; }; errorSlot(path: string, attrs?: Record): { id: string; "data-anyvali-error-for": string; "aria-live": string; }; htmx(config: HtmxConfig): Record; init(target: string | HTMLFormElement, initOptions?: Omit): FormController; }; export declare function initForm(target: string | HTMLFormElement, options: InitFormOptions): FormController; export declare function getFieldAttributes(schema: FormSchemaSource, path: string, errorIdPrefix?: string): Record; //# sourceMappingURL=index.d.ts.map