import * as react_jsx_runtime from 'react/jsx-runtime';
import { ReactNode } from 'react';
import { FieldValues, UseFormReturn } from 'react-hook-form';
import { T as TabDefinition } from './types-CtCEtTE6.js';

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

declare const useTabbedForm: <T extends FieldValues = FieldValues>() => UseFormReturn<T>;
type FooterRenderProps = {
    isLastTab: boolean;
    onNext: () => void;
    isLoading?: boolean;
};
type TabbedFormProps<T extends FieldValues> = {
    form: UseFormReturn<T>;
    onSubmit: (e?: React.BaseSyntheticEvent) => void;
    children: ReactNode;
    isLoading?: boolean;
    footer?: (props: FooterRenderProps) => ReactNode;
    transformTabs?: (tabs: TabDefinition<T>[]) => TabDefinition<T>[];
    model?: string;
    zone?: string;
};
declare function Root<T extends FieldValues>({ form, onSubmit, children, isLoading, footer, transformTabs, }: TabbedFormProps<T>): react_jsx_runtime.JSX.Element;
declare const TabbedForm: typeof Root & {
    Tab: ({ children, }: {
        id: string;
        label: string;
        children?: ReactNode;
    }) => react_jsx_runtime.JSX.Element;
    useForm: <T extends FieldValues = FieldValues>() => UseFormReturn<T>;
};

declare const Notifications: () => react_jsx_runtime.JSX.Element;

export { Notifications, TabDefinition, TabbedForm, App as default, useTabbedForm };
