import type { SetRequired } from 'type-fest';
import type { ScriptLocalization } from '../api/scriptLocalization';
import type { TaxReportingClassification } from '../api/tax-reporting-classification';
import type { TaxIdNumberType } from '../../../components/Shared/fields/TaxInformationField/types';
import type { CountryCode } from '../../../types/datasets/country-code';
import type { Address } from './address';
import type { BranchAllocation } from './branchAllocation';
import type { CompanyTypesValue } from './company-types-value';
import type { CustomerSupport } from './customerSupport';
import type { FinancialReport } from './financialReport';
import type { Phone } from './phone';
/**
 * This is the organization data model present in LEM
 */
export interface Organization {
    legalName: string;
    localization?: Array<ScriptLocalization<{
        legalName: string;
    }, 'ja-Hani' | 'ja-Kana'>>;
    registeredAddress: SetRequired<Address, 'country'>;
    countryOfGoverningLaw?: CountryCode;
    description?: string;
    doingBusinessAs?: string;
    doingBusinessAsAbsent?: boolean;
    email?: string;
    headOfficeIndicator?: boolean;
    legalFormDescription?: string;
    phone?: Phone;
    principalPlaceOfBusiness?: Address;
    registrationNumber?: string;
    registrationNumberAbsent?: boolean;
    stockData?: {
        marketIdentifier: string;
        stockNumber: string;
        tickerSymbol?: string;
    };
    taxInformation?: TaxInformation[];
    vatNumber?: string;
    vatAbsenceReason?: VatAbsenceReason;
    type?: CompanyTypesValue | '';
    financialReports?: FinancialReport[];
    statusOfLegalProceeding?: string;
    dateOfInitiationOfLegalProceeding?: string;
    dateOfIncorporation?: string;
    economicSector?: string;
    legalForm?: string;
    globalLegalEntityIdentifier?: string;
    eInvoicingCode?: string;
    support?: CustomerSupport;
    taxReportingClassification?: TaxReportingClassification;
    branchAllocation?: BranchAllocation;
}
export type VatAbsenceReason = 'industryExemption' | 'belowTaxThreshold' | 'countryWithoutVatOrGstSystem';
export type TaxInformation = {
    country: CountryCode;
    number?: string;
    type?: TaxIdNumberType;
    numberAbsent?: boolean;
};
