import { ReactNode } from 'react'; type Field = { id: string; name: string; label: string; required: boolean; placeholder?: string; defaultValue?: string; helpText?: string; } & ({ type: "text"; } | { type: "textarea"; } | { type: "number"; } | { type: "file"; } | { type: "date"; } | { type: "datetime"; } | { type: "email"; } | { type: "checkbox"; } | { type: "file"; } | { type: "hidden"; } | { type: "select"; options: string[]; multiple: boolean; } | { type: "radio"; options: string[]; multiple: boolean; }); type Handlers = { text: (props: Extract) => ReactNode; textarea: (props: Extract) => ReactNode; number: (props: Extract) => ReactNode; file: (props: Extract) => ReactNode; date: (props: Extract) => ReactNode; datetime: (props: Extract) => ReactNode; email: (props: Extract) => ReactNode; checkbox: (props: Extract) => ReactNode; select: (props: Extract) => ReactNode; radio: (props: Extract) => ReactNode; hidden: (props: Extract) => ReactNode; }; type ExtractPropsForHandler ReactNode> = Parameters[0]; type HandlerProps = ExtractPropsForHandler; type CustomBlockBase = { readonly __typename: string; }; type CustomBlocksBase = readonly CustomBlockBase[]; type FormProps = { schema: Field[]; components?: Partial; disableDefaultComponents?: boolean; children?: ReactNode; action: { type: "send"; ingestKey: Key; } | { type: "update"; adminKey: Key; eventId: string; }; } & Omit, HTMLFormElement>, "action" | "onSubmit" | "children">; declare function unstable_Form({ schema, components, disableDefaultComponents, children, action, ...rest }: FormProps): ReactNode; export { type CustomBlocksBase, type Field, type FormProps, type HandlerProps, unstable_Form };