import { z } from "zod/v4";
import type { JSX } from "solid-js";
import type { ComponentMeta } from "../../meta";
export declare const FormRootPropsSchema: z.ZodObject<{
    disabled: z.ZodOptional<z.ZodBoolean>;
    validateOn: z.ZodOptional<z.ZodEnum<{
        submit: "submit";
        blur: "blur";
        change: "change";
    }>>;
}, z.core.$strip>;
export interface FormRootProps extends z.infer<typeof FormRootPropsSchema>, Omit<JSX.FormHTMLAttributes<HTMLFormElement>, "onSubmit"> {
    schema?: z.ZodType;
    onSubmit?: (values: Record<string, unknown>, event: SubmitEvent) => void;
    onValidationError?: (errors: Record<string, string[]>) => void;
    children: JSX.Element;
}
export declare const FormFieldPropsSchema: z.ZodObject<{
    name: z.ZodString;
}, z.core.$strip>;
export interface FormFieldProps extends z.infer<typeof FormFieldPropsSchema> {
    children: JSX.Element;
}
export interface FormLabelProps extends JSX.LabelHTMLAttributes<HTMLLabelElement> {
    children?: JSX.Element;
}
export interface FormControlProps {
    children: (props: {
        id: string;
        name: string;
        "aria-describedby"?: string;
        "aria-invalid"?: boolean;
    }) => JSX.Element;
}
export interface FormDescriptionProps extends JSX.HTMLAttributes<HTMLParagraphElement> {
    children?: JSX.Element;
}
export interface FormErrorMessageProps extends JSX.HTMLAttributes<HTMLParagraphElement> {
    children?: JSX.Element | ((errors: string[]) => JSX.Element);
}
export interface FormSubmitProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> {
    children?: JSX.Element;
}
export declare const FormMeta: ComponentMeta;
//# sourceMappingURL=form.props.d.ts.map