import type { Signal } from '@preact/signals';
import type { BusinessLinesResponse } from '../../../api/businessLines/businessLines.types';
import type { GetBusinessLines } from '../../../api/businessLines/useBusinessLines';
import type { CreateBusinessLine } from '../../../api/businessLines/useCreateBusinessLine';
import type { UpdateBusinessLine } from '../../../api/businessLines/useUpdateBusinessLines';
import type { IndustryCodesResponse } from '../../../api/industryCodes/industryCodes.types';
import type { UserEvents } from '../../../core/user-events';
import type { TFunction } from '../../../../types';
import type { ToastOptions } from '../../ui/molecules/Toast/Toast.types';
import type { SummarySectionData } from '../../Shared/SummarySection/SummarySection';
import type { CountryCode } from '../../../types/datasets/country-code';
import type { EntityProblems } from '../../../types/errors/entity-problems';
import type { FormList, FormModelWithValidity } from '../../../types/form';
import type { BusinessLinesSchema } from './types';
export interface BuildRequiredFormsProps {
    config: {
        country: CountryCode;
        forms: FormList;
        requiredFields: Record<string, string[]> | undefined;
        optionalFields: Record<string, string[]> | undefined;
        isValid: Record<string, boolean>;
        problems: EntityProblems;
        industryCodes?: IndustryCodesResponse;
        data: BusinessLinesSchema;
    };
    options?: {
        skipSummary?: boolean;
    };
}
export declare const formatBusinessLinesDataForSummary: (data: BusinessLinesSchema, forms: FormModelWithValidity[], t: TFunction<readonly ["businessLines", "common"], undefined>) => SummarySectionData[];
export declare const buildRequiredForms: ({ config: { country, forms, requiredFields, optionalFields, isValid, problems, data, industryCodes, }, options, }: BuildRequiredFormsProps) => FormModelWithValidity[];
export declare const mapBusinessLineToBusinessLineSchema: (selectedBusinessLine: Signal<BusinessLinesResponse | undefined>, industryCodes: IndustryCodesResponse) => BusinessLinesSchema;
export declare const submitBusinessLines: ({ userEvents, selectedBusinessLine, legalEntityId, data, createBusinessLine, fetchBusinessLines, updateBusinessLine, showToast, t, }: {
    userEvents?: UserEvents;
    selectedBusinessLine?: Signal<BusinessLinesResponse | undefined>;
    legalEntityId: string;
    data: BusinessLinesSchema;
    createBusinessLine: CreateBusinessLine;
    fetchBusinessLines: GetBusinessLines;
    updateBusinessLine: UpdateBusinessLine;
    showToast: (options: ToastOptions) => void;
    t: TFunction<"businessLines", undefined>;
}) => Promise<void>;
