import type { CompanyType, OrganizationDto } from '../api/legalEntity/legalEntity.types.d.ts'; import type { LocalizedLegalCompanyNameFieldSchema } from '../components/Shared/fields/LocalizedLegalCompanyNameField/types.d.ts'; import type { TaskType } from '../stores/globalStore/taskTypes.d.ts'; import { type CountryCode } from '../types/datasets/country-code.d.ts'; /** * @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 company 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 company types. * - Empty array: exemption is allowed for that country without company-type restrictions. * */ export declare const REGISTRATION_NUMBER_EXEMPTION_RULES: Partial>; /** * Determines whether a registration-number exemption can be offered for a country and company type. * * Provide `companyType` when checking a specific entity (including a sole proprietorship); this checks * that exact type against the country's rule. Omit it when deciding whether to show the exemption option * for all company types in that country; it is then available only when at least one * non-sole-proprietorship type is eligible. * * This distinction prevents sole-proprietorship-only countries from exposing the exemption to * businesses while still allowing unrestricted countries (an empty rule) for every entity type. */ export declare const isRegistrationExemptionAllowed: ({ country, companyType, }: { country: CountryCode; companyType?: CompanyType; }) => boolean; export declare const isRegistrationNumberAbsentStateV4Scenario: (country: CountryCode, entityType?: CompanyType) => boolean; 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_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;