import * as react_jsx_runtime from 'react/jsx-runtime';
import { ComponentType } from 'react';
import { A as AutoFormInputComponentProps } from '../../../../shared/stack.fdi94T4S.js';
import { a as SerializedFormSubmission } from '../../../../shared/stack.BozPgbrZ.js';
import 'react-hook-form';
import 'zod';

declare function FormListPageComponent(): react_jsx_runtime.JSX.Element;

interface FormBuilderPageProps {
    id?: string;
}
declare function FormBuilderPageComponent({ id }: FormBuilderPageProps): react_jsx_runtime.JSX.Element;

interface SubmissionsPageProps {
    formId: string;
}
declare function SubmissionsPageComponent({ formId }: SubmissionsPageProps): react_jsx_runtime.JSX.Element;

interface FormRendererProps {
    /** Form slug to render */
    slug: string;
    /** Callback when form submission succeeds */
    onSuccess?: (submission: SerializedFormSubmission & {
        form: {
            successMessage?: string;
            redirectUrl?: string;
        };
    }) => void;
    /** Callback when form submission fails */
    onError?: (error: Error) => void;
    /** Custom field components (same as FormBuilder) */
    fieldComponents?: Record<string, ComponentType<AutoFormInputComponentProps>>;
    /** Override success message */
    successMessage?: React.ReactNode;
    /** Override submit button text */
    submitButtonText?: string;
    /** Custom loading component */
    LoadingComponent?: ComponentType;
    /** Custom error component */
    ErrorComponent?: ComponentType<{
        error: Error;
    }>;
    /** Class name for the form container */
    className?: string;
}
/**
 * FormRenderer component for rendering forms on the frontend.
 *
 * Uses SteppedAutoForm which automatically handles both single-step and multi-step forms.
 *
 * @example
 * ```tsx
 * <FormRenderer
 *   slug="contact-form"
 *   onSuccess={() => {
 *     toast.success("Thank you!");
 *   }}
 *   onError={(error) => {
 *     toast.error("Something went wrong");
 *   }}
 * />
 * ```
 */
declare function FormRenderer$1({ slug, onSuccess, onError, fieldComponents: propFieldComponents, successMessage: propSuccessMessage, submitButtonText, LoadingComponent, ErrorComponent, className, }: FormRendererProps): react_jsx_runtime.JSX.Element;

declare function FormListSkeleton(): react_jsx_runtime.JSX.Element;

declare function FormBuilderSkeleton(): react_jsx_runtime.JSX.Element;

declare function SubmissionsSkeleton(): react_jsx_runtime.JSX.Element;

interface DefaultErrorProps {
    error: unknown;
    resetErrorBoundary?: () => void;
}
declare function DefaultError({ error, resetErrorBoundary }: DefaultErrorProps): react_jsx_runtime.JSX.Element;

interface EmptyStateProps {
    title: string;
    description?: string;
    action?: React.ReactNode;
}
declare function EmptyState({ title, description, action }: EmptyStateProps): react_jsx_runtime.JSX.Element;

declare function NotFoundPage(): react_jsx_runtime.JSX.Element;

declare const FormListPage: typeof FormListPageComponent;
declare const FormBuilderPage: typeof FormBuilderPageComponent;
declare const SubmissionsPage: typeof SubmissionsPageComponent;
declare const FormRenderer: typeof FormRenderer$1;

export { DefaultError, EmptyState, FormBuilderPage, FormBuilderSkeleton, FormListPage, FormListSkeleton, FormRenderer, NotFoundPage, SubmissionsPage, SubmissionsSkeleton };
