import type { CompanyTypesValue } from '../../../../core/models/api/company-types-value';
import type { LegalEntityTypes } from '../../../../core/models/api/legal-entity-type';
import type { VatAbsenceReason } 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 { vatNumberOptions } from './vatNumberTypes';
export interface VatNumberOption {
    id: string;
    name: NsTranslationKey<'common'>;
    applicableOnlyFor?: ReadonlyArray<CompanyTypesValue | typeof LegalEntityTypes.TRUST>;
}
export type VatNumberType = (typeof vatNumberOptions)[keyof typeof vatNumberOptions][number]['id'];
export interface VatNumberFieldSchema {
    vatNumber?: string | undefined;
    vatNumberType?: VatNumberType;
    exemptedFromVat?: boolean;
    vatAbsenceReason?: VatAbsenceReason;
}
export interface VatNumberFieldProps extends Pick<BaseFormFieldProps<VatNumberFieldSchema>, 'data' | 'valid' | 'errors' | 'labels' | 'mask' | 'readonly' | 'optional' | 'shouldValidate' | 'handleChangeFor'> {
    country: CountryCode;
    canExempt: boolean;
}
