import type { ExistingLegalEntity, LegalEntity } from '../../../../core/models/api/legal-entity';
import type { BaseInnerFormProps, BaseOuterFormProps } from '../../../../hooks/useForm/types';
import type { NsTranslationKey, Translatable } from '../../../../../types';
import type { AddressSchema } from '../../../Shared/forms/Address/types';
import type { CountryCode } from '../../../../types/datasets/country-code';
import type { FormList, FormModel } from '../../../../types/form';
import type { BusinessFinancingBasicCompanyInformationSchema } from './BusinessFinancingBasicCompanyInformation';
import type { BusinessFinancingBusinessInformationSchema } from './BusinessFinancingBusinessInformation';
import type { BusinessFinancingFinancialInformationSchema } from './BusinessFinancingFinancialInformation';
import type { BusinessFinancingLegalInformationSchema } from './BusinessFinancingLegalInformation';
import type { BusinessFinancingOwnershipStructureSchema } from './BusinessFinancingOwnershipStructure';
import type { BusinessFinancingRegisteredAddressSchema } from './BusinessFinancingRegisteredAddress';
export interface BusinessFinancingCompanySchema extends BusinessFinancingOwnershipStructureSchema, BusinessFinancingLegalInformationSchema, BusinessFinancingBusinessInformationSchema, BusinessFinancingFinancialInformationSchema {
    isThisAddressTheMainHeadquarters?: string;
    sameAddressAsRootEntity?: boolean;
}
export interface BusinessFinancingSoleProprietorSchema extends BusinessFinancingLegalInformationSchema, Pick<BusinessFinancingBusinessInformationSchema, 'naceCode' | 'naceCodeLabel'> {
    gender?: string;
    countryOfBirth?: CountryCode;
}
export interface BusinessFinancingParentCompanySchema extends BusinessFinancingBasicCompanyInformationSchema, BusinessFinancingRegisteredAddressSchema, BusinessFinancingLegalInformationSchema, BusinessFinancingBusinessInformationSchema, BusinessFinancingFinancialInformationSchema {
}
export interface BusinessFinancingUltimateParentCompanySchema extends BusinessFinancingBasicCompanyInformationSchema, BusinessFinancingRegisteredAddressSchema, BusinessFinancingLegalInformationSchema, BusinessFinancingBusinessInformationSchema, BusinessFinancingFinancialInformationSchema {
}
export interface BusinessFinancingSchema {
    company?: BusinessFinancingCompanySchema;
    soleProprietor?: BusinessFinancingSoleProprietorSchema;
    parentCompany?: BusinessFinancingParentCompanySchema;
    ultimateParentCompany?: BusinessFinancingUltimateParentCompanySchema;
}
export interface BusinessFinancingDropinProps extends BaseOuterFormProps<BusinessFinancingSchema> {
    activeForm?: FormModel;
    forms?: FormModel[];
    country: CountryCode;
    rootLegalEntity: ExistingLegalEntity;
    externalOnSubmit?: (data: BusinessFinancingSchema) => void;
    externalOnSubmitLabel?: string;
    isStandaloneComponent?: boolean;
    handleHomeClick?(): void;
}
export interface BusinessFinancingProps {
    legalEntityId: ExistingLegalEntity['id'];
    onSubmitSuccess?: (data: BusinessFinancingSchema) => void;
    asModal?: boolean;
    handleCloseClick?(): void;
}
export interface BusinessFinancingCompanyDetailsProps extends BaseInnerFormProps<BusinessFinancingCompanySchema> {
    country: CountryCode;
    legalEntity?: ExistingLegalEntity;
}
export interface BusinessFinancingSoleProprietorDetailsProps extends BaseInnerFormProps<BusinessFinancingSoleProprietorSchema> {
    country: CountryCode;
    legalEntity?: ExistingLegalEntity;
}
export interface BusinessFinancingParentCompanyDetailsProps extends BaseInnerFormProps<BusinessFinancingParentCompanySchema> {
    country: CountryCode;
    legalEntity?: ExistingLegalEntity;
}
export interface BusinessFinancingUltimateParentCompanyDetailsProps extends BaseInnerFormProps<BusinessFinancingUltimateParentCompanySchema> {
    country: CountryCode;
    legalEntity?: ExistingLegalEntity;
}
export type BusinessFinancingSchemaCombined = BusinessFinancingCompanySchema & BusinessFinancingParentCompanySchema & BusinessFinancingUltimateParentCompanySchema;
export type BusinessFinancingPage = (typeof BusinessFinancingPages)[keyof typeof BusinessFinancingPages];
export declare const BusinessFinancingPages: {
    readonly COMPANY_PAGE: "company";
    readonly SOLE_PROPRIETOR_PAGE: "soleProprietor";
    readonly PARENT_COMPANY_PAGE: "parentCompany";
    readonly ULTIMATE_PARENT_COMPANY_PAGE: "ultimateParentCompany";
};
export interface BusinessFinancingBusinessInformationProps extends BaseInnerFormProps<BusinessFinancingBusinessInformationSchema> {
    country: CountryCode;
    targetPage: BusinessFinancingPage;
    sectionHeading?: NsTranslationKey<'businessFinancing'>;
    hideSectionHeading?: boolean;
    isSoleProprietor?: boolean;
}
export interface BusinessFinancingSoleProprietorBusinessInformationProps extends BaseInnerFormProps<Pick<BusinessFinancingBusinessInformationSchema, 'naceCode' | 'naceCodeLabel'>> {
    country: CountryCode;
    targetPage: BusinessFinancingPage;
    sectionHeading?: NsTranslationKey<'businessFinancing'>;
    hideSectionHeading?: boolean;
    isSoleProprietor: true;
}
export interface BusinessFinancingSoleProprietorPersonalInformationProps extends BaseInnerFormProps<Pick<BusinessFinancingSoleProprietorSchema, 'gender' | 'countryOfBirth'>> {
    country: CountryCode;
    targetPage: BusinessFinancingPage;
    sectionHeading?: NsTranslationKey<'businessFinancing'>;
}
export interface BusinessFinancingOwnershipStructureProps extends BaseInnerFormProps<BusinessFinancingOwnershipStructureSchema> {
    legalEntity?: LegalEntity;
}
export interface BusinessFinancingFinancialInformationProps extends BaseInnerFormProps<BusinessFinancingFinancialInformationSchema> {
    country: CountryCode;
    targetPage: BusinessFinancingPage;
    sectionHeading?: NsTranslationKey<'businessFinancing'>;
}
export interface BusinessFinancingLegalInformationProps extends BaseInnerFormProps<BusinessFinancingLegalInformationSchema> {
    country: CountryCode;
    targetPage: BusinessFinancingPage;
    sectionHeading?: NsTranslationKey<'businessFinancing'>;
}
export type BusinessFinancingParentSchemasCombined = BusinessFinancingParentCompanySchema & BusinessFinancingUltimateParentCompanySchema;
export interface BusinessFinancingBasicCompanyInformationProps extends BaseInnerFormProps<BusinessFinancingBasicCompanyInformationSchema> {
    sectionHeading?: NsTranslationKey<'businessFinancing'>;
}
export type BusinessFinancingRadioId = (typeof BusinessFinancingRadioIds)[keyof typeof BusinessFinancingRadioIds];
declare const BusinessFinancingRadioIds: {
    readonly YES: "Yes";
    readonly NO: "No";
};
export declare const businessFinancingRadioItems: Array<{
    id: BusinessFinancingRadioId;
    name: NsTranslationKey<'common'>;
}>;
export declare const businessFinancingParentRadioItems: Array<{
    id: BusinessFinancingRadioId;
    name: NsTranslationKey<'common'>;
}>;
export interface BusinessFinancingRegisteredAddressProps extends BaseInnerFormProps<BusinessFinancingRegisteredAddressSchema> {
    sectionHeading?: Translatable;
    legalEntity?: LegalEntity;
    formId?: string;
    defaultData?: BusinessFinancingParentCompanySchema;
}
export declare const companySchemaKeys: (keyof BusinessFinancingCompanySchema)[];
export declare const soleProprietorSchemaKeys: (keyof BusinessFinancingSoleProprietorSchema)[];
export declare const parentCompaniesSchemaKeys: (keyof BusinessFinancingParentCompanySchema & BusinessFinancingUltimateParentCompanySchema)[];
export declare const businessFinancingForms: FormList;
export type BusinessFinancingIndex = (typeof BusinessFinancingIndices)[keyof typeof BusinessFinancingIndices];
export declare const BusinessFinancingIndices: {
    readonly COMPANY: "company";
    readonly SOLE_PROPRIETOR: "soleProprietor";
    readonly PARENT_COMPANY: "parentCompany";
    readonly ULTIMATE_PARENT_COMPANY: "ultimateParentCompany";
};
interface BusinessFinancingSummary {
    legalName?: string;
    legalForm?: string;
    legalFormLabel?: string;
    naceCode?: string;
    naceCodeLabel?: string;
    legalInformationInsolvency?: string;
    annualTurnover?: string;
    balanceSheetTotal?: string;
    currency?: string;
    legalProceedingsDate?: string;
    financialReportingDate?: string;
    country?: string | null;
    countryOfBirth?: string;
    gender?: string;
    legalEntityIdentifier?: string;
    sameAddressAsRootEntity?: string;
    registrationAddress?: AddressSchema;
}
export type BusinessFinancingSummaryKey = keyof BusinessFinancingSummary;
export type BusinessFinancingSummaryType = {
    company?: BusinessFinancingSummary;
    soleProprietor?: BusinessFinancingSummary;
    parentCompany?: BusinessFinancingSummary;
    ultimateParentCompany?: BusinessFinancingSummary;
};
export {};
