import type { CompanyType, OrganizationDto } from '../api/legalEntity/legalEntity.types'; import type { LocalizedLegalCompanyNameFieldSchema } from '../components/Shared/fields/LocalizedLegalCompanyNameField/types'; import type { TaskType } from '../stores/globalStore/taskTypes'; import { type CountryCode } from '../types/datasets/country-code'; /** * @description Countries in this list use the provider-backed company search flow. * For these countries, business details can be prefilled from provider results, * and search/verification may require tax identifiers (for example TIN or VAT) * in addition to company name/registration details. * * If a country is in this list, it means it will attempt to make an api call for company search. * If the api doesnt have a provider for that country, it will return no results like below * ``` * { * "results": [], * "provider": "NO_PROVIDER" * } * ``` */ export declare const COUNTRIES_USING_COMPANY_SEARCH: readonly CountryCode[]; /** * Source of truth for registration-number exemption eligibility in Business Details. * * This map defines which organization entity types can use * `exemptedFromRegistrationNumber`, grouped by country. All exemption checks should * be derived from this structure to keep behavior consistent across form rules. * * Interpretation: * - Non-empty array: exemption is allowed only for the listed entity types. * - Empty array: exemption is allowed for that country without entity-type restrictions. * */ export declare const REGISTRATION_NUMBER_EXEMPTION_RULES: Partial>; export declare const COUNTRIES_THAT_DONT_REQUIRE_COMPANY_REGISTRATION: readonly CountryCode[]; export declare const COUNTRIES_WITH_OPTIONAL_REGISTRATION_NUMBER: readonly CountryCode[]; /** * Also used to determine what documenttype needs to be used * when uploading tax document in mapping.ts * */ export declare const COUNTRIES_THAT_USE_TAX_ID_INSTEAD_OF_VAT: readonly CountryCode[]; export declare const COUNTRIES_WITH_POSSIBLE_TAX_EXEMPTION_FOR_COMPANIES: readonly CountryCode[]; export declare const COUNTRIES_REQUIRING_FINANCIAL_INFORMATION: readonly CountryCode[]; export declare const COUNTRIES_WITH_POSSIBLE_TRUSTEE_TAXID_ABSENT_V4: readonly CountryCode[]; export declare const TAX_ID_REQUIRED_COUNTRIES_ORGANIZATION: readonly CountryCode[]; /** * Sole proprietorship specific rules */ export declare const COUNTRIES_THAT_DONT_REQUIRE_SOLE_PROP_REGISTRATION: readonly CountryCode[]; export declare const COUNTRIES_WITH_POSSIBLE_TAX_EXEMPTION_FOR_SOLE_PROPS: readonly CountryCode[]; export declare const COUNTRIES_WITH_POSSIBLE_REGISTRATION_EXEMPTIONS_FOR_SOLE_PROPS: CountryCode[]; export declare const COUNTRIES_THAT_DO_NOT_USE_TAX_ID_FOR_SOLE_PROP: readonly CountryCode[]; export declare const COUNTRIES_WITH_OPTIONAL_REGISTRATION_NUMBER_SOLE_PROPS: CountryCode[]; export declare const isUsingCompanySearch: (country: CountryCode, taskType: TaskType) => boolean; /** * A Japanese business has a kanji legal name and a katakana reading of it, neither of which can be * derived from the roman one, so they travel beside it as script localizations. * * @param data the form section holding the localized name fields, whatever the task calls it * @returns the localizations that were filled in, so an empty array when neither was asked for */ export declare const mapJapaneseLegalNamesToLocalization: (data: Partial) => NonNullable; /** * Reads the kanji and katakana legal names back out of the script localizations, so they can * prefill the fields they came from. * * @param localization the organization's script localizations, when it has any */ export declare const mapLocalizationToJapaneseLegalNames: (localization: OrganizationDto["localization"]) => LocalizedLegalCompanyNameFieldSchema;