import { type ElementType, type ReactNode } from 'react';
import { type PageAsideProps } from '../../components/PageAside';
import { type PageHeaderProps } from '../../components/PageHeader';
import { type PageLayoutProps } from '../../components/PageLayout';
import { type SecondaryAction } from '../FormPageLayoutBase';
import { type FormWizardProps as ExternalFormWizardProps } from '../FormWizard';
export type FormWizardProps<TFormValues extends Record<string, unknown>> = Omit<ExternalFormWizardProps<TFormValues>, 'customFooter'> & {
    /**
     * Дополнительные кнопки формы
     */
    secondaryActions?: SecondaryAction[];
};
export type FormWizardPageLayoutProps<TFormValues extends Record<string, unknown>, TMainActionComponent extends ElementType = ElementType, TSecondaryActionComponent extends ElementType = ElementType, TBackButtonComponent extends ElementType = ElementType> = Pick<PageLayoutProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>, 'className' | 'alert'> & {
    /**
     * Конфигурация PageHeader
     * @example <FormWizardPageLayout header={{
     *  title: 'Заголовок страницы',
     *  description: 'Описание страницы',
     * }} />
     */
    header: PageHeaderProps<TMainActionComponent, TSecondaryActionComponent, TBackButtonComponent>;
    /**
     * Конфигурация PageAside
     * @example <FormWizardPageLayout aside={{
     *  children: 'Боковая панель страницы',
     * }} />
     */
    aside?: PageAsideProps | ReactNode;
    /**
     * Конфигурация FormWizard
     * @example <FormWizardPageLayout
     *  header={{
     *    title: 'Заголовок страницы',
     *  }}
     *  formWizard={{
     *    submitButtonText: 'Подписать и отправить',
     *    onSubmit: handleSubmit,
     *  }}
     * />
     */
    formWizard: FormWizardProps<TFormValues>;
};
