import * as React from 'react'; /** * Field type options for form fields */ export type FormFieldType = 'text' | 'email' | 'number' | 'textarea' | 'select' | 'checkbox' | 'radio' | 'date'; /** * Option format for select/radio fields */ export interface FormFieldOption { value: string; label: string; } /** * Schema for a single form field */ export interface FormFieldSchema { /** Field name used as the key in form data */ name: string; /** Type of form field to render */ type: FormFieldType; /** Label to display for the field */ label: string; /** Placeholder text */ placeholder?: string; /** Whether the field is required */ required?: boolean; /** Default value for the field */ defaultValue?: unknown; /** Options for select/radio fields - can be string[] shorthand or object format */ options?: string[] | FormFieldOption[]; /** Number of rows for textarea */ rows?: number; /** Minimum value for number input */ min?: number; /** Maximum value for number input */ max?: number; } /** * Schema for configuring an AIForm */ export interface FormBlockSchema { /** Unique identifier for the component instance */ id: string; /** Title to display above the form */ title?: string; /** Description to display below the title */ description?: string; /** Array of field schemas */ fields: FormFieldSchema[]; /** Label for the submit button */ submitLabel?: string; /** Form layout direction */ layout?: 'vertical' | 'horizontal'; } /** * Props for AIForm */ export interface AIFormProps { /** Schema defining the form configuration */ schema: FormBlockSchema; /** Additional class names */ className?: string; } /** * AIForm - An interactive form for use in AI chat messages. * * Renders a form based on a schema that emits interaction events when submitted. * Supports various field types including text, email, number, textarea, select, checkbox, and radio. */ export declare function AIForm({ schema, className }: AIFormProps): React.ReactElement; export declare namespace AIForm { var displayName: string; } export default AIForm;