import type { CompanyTypesValue } from '../../../../core/models/api/company-types-value';
import type { LegalEntityTypes } from '../../../../core/models/api/legal-entity-type';
import type { TaxInformation } from '../../../../core/models/api/organization';
import type { BaseFormFieldProps } from '../../../../hooks/useForm/types';
import type { NsTranslationKey } from '../../../../../types';
import type { CountryCode } from '../../../../types/datasets/country-code';
import type { taxIdNumberOptions } from './taxIdNumberTypes';
export interface TaxInformationFieldSchema {
    taxInformation?: TaxInformation[];
    exemptedFromTax?: boolean;
    isUen?: boolean;
}
export interface TaxInformationFieldProps extends Pick<BaseFormFieldProps<TaxInformationFieldSchema>, 'data' | 'valid' | 'errors' | 'labels' | 'mask' | 'readonly' | 'optional' | 'shouldValidate' | 'handleChangeFor'> {
    defaultData: TaxInformation[] | undefined;
    country: CountryCode;
    canExempt: boolean;
    placeholder?: string;
    entityType?: CompanyTypesValue | typeof LegalEntityTypes.TRUST | typeof LegalEntityTypes.INDIVIDUAL;
    registrationNumber?: string;
    invertCompanyTypeFilter?: boolean;
}
export interface TaxIdNumberOption {
    id: string;
    name: NsTranslationKey<'common'>;
    applicableOnlyFor?: ReadonlyArray<CompanyTypesValue | typeof LegalEntityTypes.TRUST | typeof LegalEntityTypes.INDIVIDUAL>;
}
export type TaxIdNumberType = (typeof taxIdNumberOptions)[keyof typeof taxIdNumberOptions][number]['id'];
