import * as react_jsx_runtime from 'react/jsx-runtime';
import { ThemeProps } from '@rjsf/core';
import * as class_variance_authority_dist_types from 'class-variance-authority/dist/types';
import * as React from 'react';
import { VariantProps } from 'class-variance-authority';
import { ClassValue } from 'clsx';

interface FormField {
    id: string;
    name: string;
    type: string;
    label: string;
    required: boolean;
    description?: string;
    placeholder?: string;
    validation?: {
        maxLength?: number;
        minLength?: number;
    };
}
interface FormStep {
    id: string;
    title: string;
    schema: {
        type: string;
        required: string[];
        properties: Record<string, FormField>;
    };
}
interface SimpleFormSchema {
    $id: string;
    type: string;
    title: string;
    required: string[];
    properties: Record<string, {
        type: string;
        title: string;
        placeholder?: string;
        maxLength?: number;
        minLength?: number;
        enum?: string[];
        enumNames?: string[];
    }>;
    description?: string;
}
interface FormJsonStructure {
    id: number;
    documentId: string;
    title: string;
    description: string | null;
    isMultiStep: boolean;
    json_schema: SimpleFormSchema | {
        steps: FormStep[];
        isMultiStep: boolean;
    };
    createdAt: string;
    updatedAt: string;
    publishedAt: string;
}
interface FormResult {
    formInfo: {
        id: number;
        title: string;
        isMultiStep: boolean;
        submittedAt: string;
    };
    fields: Record<string, {
        name: string;
        value: unknown;
        type: string;
        title: string;
        required: boolean;
    }>;
}
interface FormularioProps {
    formJson: FormJsonStructure;
    onSubmit?: (result: FormResult) => void;
    className?: string;
    customTheme?: any;
}
interface FormSchemaWizardProps extends FormularioProps {
}

declare function FormSchemaWizard({ formJson, onSubmit, className, customTheme: userCustomTheme }: FormSchemaWizardProps): react_jsx_runtime.JSX.Element;

/**
 * Client Component wrapper for Next.js App Router
 * Use this component when you need to render the form in a Client Component context
 */
declare function FormSchemaWizardClient(props: FormSchemaWizardProps): react_jsx_runtime.JSX.Element;

declare const rjsfShadcnTheme: Partial<ThemeProps>;

declare const buttonVariants: (props?: ({
    variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
    size?: "default" | "sm" | "lg" | "icon" | null | undefined;
} & class_variance_authority_dist_types.ClassProp) | undefined) => string;
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
    asChild?: boolean;
}
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;

interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
}
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;

declare function cn(...inputs: ClassValue[]): string;

export { Button, FormSchemaWizard, FormSchemaWizardClient, Input, cn, rjsfShadcnTheme };
export type { FormField, FormJsonStructure, FormResult, FormSchemaWizardProps, FormStep, FormularioProps, SimpleFormSchema };
