/**
 * PZG Pro - Form UX Generator
 * DMMF-based implementation for React form generation
 */
import { ProFeatureBase } from '../../core/ProFeatureBase';
export type FormUILibrary = 'barebones' | 'shadcn' | 'mantine' | 'chakra' | 'mui';
export interface FormUXConfig {
    outputPath?: string;
    framework?: 'react-hook-form' | 'formik' | 'react-final-form';
    uiLibrary?: FormUILibrary;
    enableI18n?: boolean;
    i18nNamespace?: string;
    defaultValues?: boolean;
    validation?: 'zod' | 'yup';
    generateTests?: boolean;
}
export interface FormFieldConfig {
    name: string;
    type: string;
    label?: string;
    placeholder?: string;
    required?: boolean;
    defaultValue?: unknown;
    validation?: string[];
    component?: 'input' | 'textarea' | 'select' | 'checkbox' | 'radio' | 'date' | 'file';
    options?: Array<{
        value: string;
        label: string;
    }>;
}
export interface FormSchema {
    name: string;
    fields: FormFieldConfig[];
    validationSchema: string;
    defaultValues: Record<string, unknown>;
}
export declare class FormUXGenerator extends ProFeatureBase {
    private config;
    constructor(context: any, config?: FormUXConfig);
    /**
     * Reject a `uiLibrary` we have no template for.
     *
     * Unrecognised values used to fall through to the shadcn branch, emitting its
     * `<Form>`/`<FormField>`/`<FormItem>` vocabulary with no imports for any of it —
     * output that could not compile. Falling back to barebones produces working
     * forms from plain elements, and says so rather than leaving it to be found.
     */
    private resolveUILibrary;
    /**
     * Which components each supported library provides, and how a field type maps
     * onto them.
     *
     * All three render through react-hook-form's `Controller`: their inputs are
     * controlled components, so `register()` alone does not propagate a Select or
     * Checkbox change.
     */
    private static readonly COMPONENT_LIBRARIES;
    protected getFeatureName(): string;
    protected generateFeature(): Promise<void>;
    private convertModelToFormSchema;
    private convertFieldToFormConfig;
    private getFormComponentType;
    private generateDefaultValue;
    private generateReactHookForm;
    private generateShadcnField;
    private generateFieldComponent;
    private generateBarebonesField;
    private generateValidationHelpers;
    private generateI18nKeys;
    private generateFormTests;
    private generateZodSchemasFile;
    private mapFieldToZodSchema;
    private generateIndexFile;
    private generateFormUXDocumentation;
}
