import type { CompanyTypesValue } from '../../../core/models/api/company-types-value';
import type { MultiFormOptions } from '../../../hooks/useMultiForm/types';
import type { TaskType } from '../../../stores/globalStore/taskTypes';
import type { CountryCode } from '../../../types/datasets/country-code';
import type { FormRulesParams } from '../../../types/form-rules';
import type { BusinessDetailsSchema } from './BusinessDetails/types';
export declare const COUNTRIES_THAT_DONT_REQUIRE_SOLE_PROP_REGISTRATION: CountryCode[];
export declare const COUNTRIES_THAT_DONT_REQUIRE_COMPANY_REGISTRATION: CountryCode[];
export declare const COUNTRIES_WITH_POSSIBLE_REGISTRATION_EXEMPTIONS_FOR_SOLE_PROPS: CountryCode[];
export declare const COUNTRIES_WITH_OPTIONAL_REGISTRATION_NUMBER: CountryCode[];
export declare const COUNTRIES_WITH_OPTIONAL_REGISTRATION_NUMBER_SOLE_PROPS: 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_WITH_POSSIBLE_TAX_EXEMPTION_FOR_SOLE_PROPS: readonly CountryCode[];
export declare const COUNTRIES_THAT_REQUIRE_DATE_OF_INCORPORATION: CountryCode[];
export declare const COUNTRIES_THAT_USES_UEN_OR_GST: CountryCode[];
/**
 * @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[];
export declare const COUNTRY_OF_GOVERNING_LAW_POSSIBLE: readonly CountryCode[];
export declare const COUNTRIES_REQUIRING_FINANCIAL_INFORMATION: readonly CountryCode[];
export declare const COUNTRIES_REQUIRING_E_INVOICING_CODE: readonly CountryCode[];
export declare const COUNTRIES_WITH_POSSIBLE_TRUSTEE_TAXID_ABSENT_V4: readonly CountryCode[];
export declare function isUsingCompanySearch(country: CountryCode, taskType: TaskType): boolean;
export declare const isRegistrationNumberAbsentStateV4Scenario: (country: CountryCode, entityType?: CompanyTypesValue) => boolean;
export declare const rules: ({ data, defaultData, country, taskType, isFeatureEnabled, isSettingEnabled, accountHolder, rootLegalEntity, tinMatched, }: FormRulesParams<BusinessDetailsSchema> & {
    defaultData?: MultiFormOptions<BusinessDetailsSchema>["defaultData"];
}) => {
    requireDoingBusinessAsName: () => "REQUIRED" | undefined;
    countryRequiresStateOrProvince: () => "REQUIRED" | undefined;
    ifPubliclyTradedCompany: () => "REQUIRED" | undefined;
    countryUsesVat: () => "REQUIRED" | "OPTIONAL" | undefined;
    vatNumberType: () => "OPTIONAL" | undefined;
    isVatExempt: () => "REQUIRED" | "OPTIONAL" | undefined;
    countryUsesTaxId: () => "REQUIRED" | "OPTIONAL" | undefined;
    companyRegistrationNumberExemptionAllowed: () => "REQUIRED" | "OPTIONAL" | undefined;
    countryOfGoverningLawRequired: () => "REQUIRED" | undefined;
    countryRequiresRegistrationNumber: () => "REQUIRED" | "OPTIONAL" | undefined;
    registrationNumberType: () => "OPTIONAL" | undefined;
    countryUsesUenOrGst: () => "REQUIRED" | undefined;
    countryHasTaxExemptions: () => "REQUIRED" | "OPTIONAL" | undefined;
    usingCompanySearch: () => "REQUIRED" | undefined;
    requireStateOrProvinceForCompanySearch: () => "REQUIRED" | undefined;
    countryRequiresFinancialInformation: () => "REQUIRED" | undefined;
    isDateOfIncorporationRequired: () => "REQUIRED" | undefined;
    isFinancialReportingFieldsRequired: () => "REQUIRED" | undefined;
    isIndustryCodeRequired: () => "REQUIRED" | undefined;
    annualTurnoverRequired: () => "REQUIRED" | undefined;
    balanceSheetTotalRequired: () => "REQUIRED" | undefined;
    isEInvoicingCodeEnabled: () => "REQUIRED" | undefined;
    ifCountryUsAndTinFailed: () => "REQUIRED" | undefined;
    businessRequiresCompanyType: () => "REQUIRED" | undefined;
    japaneseLegalCompanyName: () => "REQUIRED" | undefined;
};
export type BusinessRules = ReturnType<typeof rules>;
