import * as HttpClient from "effect/unstable/http/HttpClient";
import * as redacted from "effect/Redacted";
import * as S from "effect/Schema";
import * as stream from "effect/Stream";
import * as API from "../client/api.ts";
import type { Credentials } from "../credentials.ts";
import type { CommonErrors } from "../errors.ts";
import type { Region } from "../region.ts";
export type AccountId = string;
export type ErrorMessage = string | redacted.Redacted<string>;
export type ErrorCode = string;
export type FieldName = string;
export type CountryCode = string;
export type State = string;
export type DisplayName = string;
export type RegistrationId = string;
export type LegalName = string;
export type AddressLine1 = string;
export type AddressLine2 = string;
export type AddressLine3 = string;
export type District = string;
export type City = string;
export type PostalCode = string;
export type TaxInformationNumber = string;
export type BusinessRegistrationNumber = string;
export type RegistryCommercialCode = string;
export type CanadaProvincialSalesTaxIdString = string;
export type CanadaQuebecSalesTaxNumberString = string;
export type CanadaRetailSalesTaxNumberString = string;
export type BusinessRepresentativeName = string;
export type LineOfBusiness = string;
export type ItemOfBusiness = string;
export type TaxOffice = string;
export type KepEmailId = string;
export type SecondaryTaxId = string;
export type SdiAccountId = string;
export type CigNumber = string;
export type CupNumber = string;
export type TaxCode = string;
export type IndividualRegistrationNumber = string;
export type PpnExceptionDesignationCode = string;
export type DecisionNumber = string;
export type EnterpriseIdentificationNumber = string;
export type ElectronicTransactionCodeNumber = string;
export type PaymentVoucherNumber = string;
export type DateString = string;
export type UniqueIdentificationNumber = string;
export type ContractingAuthorityCode = string;
export type VatRegistrationNumber = string;
export type DateOfBirth = string;
export type S3BucketName = string;
export type S3Key = string;
export type TaxDocumentName = string;
export type FileBlob = Uint8Array;
export type CertifiedEmailId = string;
export type TaxDocumentAccessToken = string;
export type CcmCode = string;
export type LegalNatureCode = string;
export type Pan = string;
export type S3Prefix = string;
export type DestinationFilePath = string;
export type Url = string;
export type MaxResults = number;
export type PaginationTokenString = string;
export type InheritanceObtainedReason = string;
export type AccountName = string;
export type Seller = string;
export type ExemptionDocumentName = string;
export type ExemptionFileBlob = Uint8Array;
export type AccountIds = string[];
export declare const AccountIds: S.$Array<S.String>;
export interface BatchDeleteTaxRegistrationRequest {
    accountIds: string[];
}
export declare const BatchDeleteTaxRegistrationRequest: S.Schema<BatchDeleteTaxRegistrationRequest>;
export interface BatchDeleteTaxRegistrationError_ {
    accountId: string;
    message: string | redacted.Redacted<string>;
    code?: string;
}
export declare const BatchDeleteTaxRegistrationError_: S.Schema<BatchDeleteTaxRegistrationError_>;
export type BatchDeleteTaxRegistrationErrors = BatchDeleteTaxRegistrationError_[];
export declare const BatchDeleteTaxRegistrationErrors: S.$Array<S.Schema<BatchDeleteTaxRegistrationError_>>;
export interface BatchDeleteTaxRegistrationResponse {
    errors: BatchDeleteTaxRegistrationError_[];
}
export declare const BatchDeleteTaxRegistrationResponse: S.Schema<BatchDeleteTaxRegistrationResponse>;
export type ValidationExceptionErrorCode = "MalformedToken" | "ExpiredToken" | "InvalidToken" | "FieldValidationFailed" | "MissingInput" | (string & {});
export declare const ValidationExceptionErrorCode: S.String;
export interface ValidationExceptionField {
    name: string;
}
export declare const ValidationExceptionField: S.Schema<ValidationExceptionField>;
export type ValidationExceptionFieldList = ValidationExceptionField[];
export declare const ValidationExceptionFieldList: S.$Array<S.Schema<ValidationExceptionField>>;
export interface BatchGetTaxExemptionsRequest {
    accountIds: string[];
}
export declare const BatchGetTaxExemptionsRequest: S.Schema<BatchGetTaxExemptionsRequest>;
export interface Authority {
    country: string;
    state?: string;
}
export declare const Authority: S.Schema<Authority>;
export type Authorities = Authority[];
export declare const Authorities: S.$Array<S.Schema<Authority>>;
export interface TaxExemptionType {
    displayName?: string;
    description?: string;
    applicableJurisdictions?: Authority[];
}
export declare const TaxExemptionType: S.Schema<TaxExemptionType>;
export type EntityExemptionAccountStatus = "None" | "Valid" | "Expired" | "Pending" | (string & {});
export declare const EntityExemptionAccountStatus: S.String;
export interface TaxExemption {
    authority: Authority;
    taxExemptionType: TaxExemptionType;
    effectiveDate?: Date;
    expirationDate?: Date;
    systemEffectiveDate?: Date;
    status?: EntityExemptionAccountStatus;
}
export declare const TaxExemption: S.Schema<TaxExemption>;
export type TaxExemptions = TaxExemption[];
export declare const TaxExemptions: S.$Array<S.Schema<TaxExemption>>;
export interface TaxExemptionDetails {
    taxExemptions?: TaxExemption[];
    heritageObtainedDetails?: boolean;
    heritageObtainedParentEntity?: string;
    heritageObtainedReason?: string;
}
export declare const TaxExemptionDetails: S.Schema<TaxExemptionDetails>;
export type TaxExemptionDetailsMap = {
    [key: string]: TaxExemptionDetails | undefined;
};
export declare const TaxExemptionDetailsMap: S.$Record<S.String, S.optional<S.Schema<TaxExemptionDetails>>>;
export interface BatchGetTaxExemptionsResponse {
    taxExemptionDetailsMap?: {
        [key: string]: TaxExemptionDetails | undefined;
    };
    failedAccounts?: string[];
}
export declare const BatchGetTaxExemptionsResponse: S.Schema<BatchGetTaxExemptionsResponse>;
export type TaxRegistrationType = "VAT" | "GST" | "CPF" | "CNPJ" | "SST" | "TIN" | "NRIC" | (string & {});
export declare const TaxRegistrationType: S.String;
export interface Address {
    addressLine1: string;
    addressLine2?: string;
    addressLine3?: string;
    districtOrCounty?: string;
    city: string;
    stateOrRegion?: string;
    postalCode: string;
    countryCode: string;
}
export declare const Address: S.Schema<Address>;
export type Sector = "Business" | "Individual" | "Government" | (string & {});
export declare const Sector: S.String;
export type MalaysiaServiceTaxCode = "Consultancy" | "Digital Service And Electronic Medium" | "IT Services" | "Training Or Coaching" | (string & {});
export declare const MalaysiaServiceTaxCode: S.String;
export type MalaysiaServiceTaxCodesList = MalaysiaServiceTaxCode[];
export declare const MalaysiaServiceTaxCodesList: S.$Array<S.String>;
export interface MalaysiaAdditionalInfo {
    serviceTaxCodes?: MalaysiaServiceTaxCode[];
    taxInformationNumber?: string;
    businessRegistrationNumber?: string;
}
export declare const MalaysiaAdditionalInfo: S.Schema<MalaysiaAdditionalInfo>;
export type IsraelDealerType = "Authorized" | "Non-authorized" | (string & {});
export declare const IsraelDealerType: S.String;
export type IsraelCustomerType = "Business" | "Individual" | (string & {});
export declare const IsraelCustomerType: S.String;
export interface IsraelAdditionalInfo {
    dealerType: IsraelDealerType;
    customerType: IsraelCustomerType;
}
export declare const IsraelAdditionalInfo: S.Schema<IsraelAdditionalInfo>;
export interface EstoniaAdditionalInfo {
    registryCommercialCode: string;
}
export declare const EstoniaAdditionalInfo: S.Schema<EstoniaAdditionalInfo>;
export interface CanadaAdditionalInfo {
    provincialSalesTaxId?: string;
    canadaQuebecSalesTaxNumber?: string;
    canadaRetailSalesTaxNumber?: string;
    isResellerAccount?: boolean;
}
export declare const CanadaAdditionalInfo: S.Schema<CanadaAdditionalInfo>;
export type RegistrationType = "Intra-EU" | "Local" | (string & {});
export declare const RegistrationType: S.String;
export interface SpainAdditionalInfo {
    registrationType: RegistrationType;
}
export declare const SpainAdditionalInfo: S.Schema<SpainAdditionalInfo>;
export type PersonType = "Legal Person" | "Physical Person" | "Business" | (string & {});
export declare const PersonType: S.String;
export interface KenyaAdditionalInfo {
    personType: PersonType;
}
export declare const KenyaAdditionalInfo: S.Schema<KenyaAdditionalInfo>;
export interface SouthKoreaAdditionalInfo {
    businessRepresentativeName: string;
    lineOfBusiness: string;
    itemOfBusiness: string;
}
export declare const SouthKoreaAdditionalInfo: S.Schema<SouthKoreaAdditionalInfo>;
export type Industries = "CirculatingOrg" | "ProfessionalOrg" | "Banks" | "Insurance" | "PensionAndBenefitFunds" | "DevelopmentAgencies" | (string & {});
export declare const Industries: S.String;
export interface TurkeyAdditionalInfo {
    taxOffice?: string;
    kepEmailId?: string;
    secondaryTaxId?: string;
    industries?: Industries;
}
export declare const TurkeyAdditionalInfo: S.Schema<TurkeyAdditionalInfo>;
export interface GeorgiaAdditionalInfo {
    personType: PersonType;
}
export declare const GeorgiaAdditionalInfo: S.Schema<GeorgiaAdditionalInfo>;
export interface ItalyAdditionalInfo {
    sdiAccountId?: string;
    cigNumber?: string;
    cupNumber?: string;
    taxCode?: string;
}
export declare const ItalyAdditionalInfo: S.Schema<ItalyAdditionalInfo>;
export type TaxRegistrationNumberType = "TaxRegistrationNumber" | "LocalRegistrationNumber" | (string & {});
export declare const TaxRegistrationNumberType: S.String;
export interface RomaniaAdditionalInfo {
    taxRegistrationNumberType: TaxRegistrationNumberType;
}
export declare const RomaniaAdditionalInfo: S.Schema<RomaniaAdditionalInfo>;
export type UkraineTrnType = "Business" | "Individual" | (string & {});
export declare const UkraineTrnType: S.String;
export interface UkraineAdditionalInfo {
    ukraineTrnType: UkraineTrnType;
}
export declare const UkraineAdditionalInfo: S.Schema<UkraineAdditionalInfo>;
export interface PolandAdditionalInfo {
    individualRegistrationNumber?: string;
    isGroupVatEnabled?: boolean;
}
export declare const PolandAdditionalInfo: S.Schema<PolandAdditionalInfo>;
export type SaudiArabiaTaxRegistrationNumberType = "TaxRegistrationNumber" | "TaxIdentificationNumber" | "CommercialRegistrationNumber" | (string & {});
export declare const SaudiArabiaTaxRegistrationNumberType: S.String;
export interface SaudiArabiaAdditionalInfo {
    taxRegistrationNumberType?: SaudiArabiaTaxRegistrationNumberType;
}
export declare const SaudiArabiaAdditionalInfo: S.Schema<SaudiArabiaAdditionalInfo>;
export type IndonesiaTaxRegistrationNumberType = "NIK" | "PassportNumber" | "NPWP" | "NITKU" | (string & {});
export declare const IndonesiaTaxRegistrationNumberType: S.String;
export interface IndonesiaAdditionalInfo {
    taxRegistrationNumberType?: IndonesiaTaxRegistrationNumberType;
    ppnExceptionDesignationCode?: string;
    decisionNumber?: string;
}
export declare const IndonesiaAdditionalInfo: S.Schema<IndonesiaAdditionalInfo>;
export interface VietnamAdditionalInfo {
    enterpriseIdentificationNumber?: string;
    electronicTransactionCodeNumber?: string;
    paymentVoucherNumber?: string;
    paymentVoucherNumberDate?: string;
}
export declare const VietnamAdditionalInfo: S.Schema<VietnamAdditionalInfo>;
export interface EgyptAdditionalInfo {
    uniqueIdentificationNumber?: string;
    uniqueIdentificationNumberExpirationDate?: string;
}
export declare const EgyptAdditionalInfo: S.Schema<EgyptAdditionalInfo>;
export interface GreeceAdditionalInfo {
    contractingAuthorityCode?: string;
}
export declare const GreeceAdditionalInfo: S.Schema<GreeceAdditionalInfo>;
export type UzbekistanTaxRegistrationNumberType = "Business" | "Individual" | (string & {});
export declare const UzbekistanTaxRegistrationNumberType: S.String;
export interface UzbekistanAdditionalInfo {
    taxRegistrationNumberType?: UzbekistanTaxRegistrationNumberType;
    vatRegistrationNumber?: string;
}
export declare const UzbekistanAdditionalInfo: S.Schema<UzbekistanAdditionalInfo>;
export interface AdditionalInfoRequest {
    malaysiaAdditionalInfo?: MalaysiaAdditionalInfo;
    israelAdditionalInfo?: IsraelAdditionalInfo;
    estoniaAdditionalInfo?: EstoniaAdditionalInfo;
    canadaAdditionalInfo?: CanadaAdditionalInfo;
    spainAdditionalInfo?: SpainAdditionalInfo;
    kenyaAdditionalInfo?: KenyaAdditionalInfo;
    southKoreaAdditionalInfo?: SouthKoreaAdditionalInfo;
    turkeyAdditionalInfo?: TurkeyAdditionalInfo;
    georgiaAdditionalInfo?: GeorgiaAdditionalInfo;
    italyAdditionalInfo?: ItalyAdditionalInfo;
    romaniaAdditionalInfo?: RomaniaAdditionalInfo;
    ukraineAdditionalInfo?: UkraineAdditionalInfo;
    polandAdditionalInfo?: PolandAdditionalInfo;
    saudiArabiaAdditionalInfo?: SaudiArabiaAdditionalInfo;
    indonesiaAdditionalInfo?: IndonesiaAdditionalInfo;
    vietnamAdditionalInfo?: VietnamAdditionalInfo;
    egyptAdditionalInfo?: EgyptAdditionalInfo;
    greeceAdditionalInfo?: GreeceAdditionalInfo;
    uzbekistanAdditionalInfo?: UzbekistanAdditionalInfo;
}
export declare const AdditionalInfoRequest: S.Schema<AdditionalInfoRequest>;
export interface SourceS3Location {
    bucket: string;
    key: string;
}
export declare const SourceS3Location: S.Schema<SourceS3Location>;
export interface TaxRegistrationDocFile {
    fileName: string;
    fileContent: Uint8Array;
}
export declare const TaxRegistrationDocFile: S.Schema<TaxRegistrationDocFile>;
export interface TaxRegistrationDocument {
    s3Location?: SourceS3Location;
    file?: TaxRegistrationDocFile;
}
export declare const TaxRegistrationDocument: S.Schema<TaxRegistrationDocument>;
export type TaxRegistrationDocuments = TaxRegistrationDocument[];
export declare const TaxRegistrationDocuments: S.$Array<S.Schema<TaxRegistrationDocument>>;
export interface VerificationDetails {
    dateOfBirth?: string;
    taxRegistrationDocuments?: TaxRegistrationDocument[];
}
export declare const VerificationDetails: S.Schema<VerificationDetails>;
export interface TaxRegistrationEntry {
    registrationId: string;
    registrationType: TaxRegistrationType;
    legalName?: string;
    legalAddress?: Address;
    sector?: Sector;
    additionalTaxInformation?: AdditionalInfoRequest;
    verificationDetails?: VerificationDetails;
    certifiedEmailId?: string;
}
export declare const TaxRegistrationEntry: S.Schema<TaxRegistrationEntry>;
export interface BatchPutTaxRegistrationRequest {
    accountIds: string[];
    taxRegistrationEntry: TaxRegistrationEntry;
}
export declare const BatchPutTaxRegistrationRequest: S.Schema<BatchPutTaxRegistrationRequest>;
export type TaxRegistrationStatus = "Verified" | "Pending" | "Deleted" | "Rejected" | (string & {});
export declare const TaxRegistrationStatus: S.String;
export interface BatchPutTaxRegistrationError_ {
    accountId: string;
    message: string | redacted.Redacted<string>;
    code?: string;
}
export declare const BatchPutTaxRegistrationError_: S.Schema<BatchPutTaxRegistrationError_>;
export type BatchPutTaxRegistrationErrors = BatchPutTaxRegistrationError_[];
export declare const BatchPutTaxRegistrationErrors: S.$Array<S.Schema<BatchPutTaxRegistrationError_>>;
export interface BatchPutTaxRegistrationResponse {
    status?: TaxRegistrationStatus;
    errors: BatchPutTaxRegistrationError_[];
}
export declare const BatchPutTaxRegistrationResponse: S.Schema<BatchPutTaxRegistrationResponse>;
export interface DeleteSupplementalTaxRegistrationRequest {
    authorityId: string;
}
export declare const DeleteSupplementalTaxRegistrationRequest: S.Schema<DeleteSupplementalTaxRegistrationRequest>;
export interface DeleteSupplementalTaxRegistrationResponse {
}
export declare const DeleteSupplementalTaxRegistrationResponse: S.Schema<DeleteSupplementalTaxRegistrationResponse>;
export interface DeleteTaxRegistrationRequest {
    accountId?: string;
}
export declare const DeleteTaxRegistrationRequest: S.Schema<DeleteTaxRegistrationRequest>;
export interface DeleteTaxRegistrationResponse {
}
export declare const DeleteTaxRegistrationResponse: S.Schema<DeleteTaxRegistrationResponse>;
export interface GetTaxExemptionTypesRequest {
}
export declare const GetTaxExemptionTypesRequest: S.Schema<GetTaxExemptionTypesRequest>;
export type TaxExemptionTypes = TaxExemptionType[];
export declare const TaxExemptionTypes: S.$Array<S.Schema<TaxExemptionType>>;
export interface GetTaxExemptionTypesResponse {
    taxExemptionTypes?: TaxExemptionType[];
}
export declare const GetTaxExemptionTypesResponse: S.Schema<GetTaxExemptionTypesResponse>;
export interface GetTaxInheritanceRequest {
}
export declare const GetTaxInheritanceRequest: S.Schema<GetTaxInheritanceRequest>;
export type HeritageStatus = "OptIn" | "OptOut" | (string & {});
export declare const HeritageStatus: S.String;
export interface GetTaxInheritanceResponse {
    heritageStatus?: HeritageStatus;
}
export declare const GetTaxInheritanceResponse: S.Schema<GetTaxInheritanceResponse>;
export interface GetTaxRegistrationRequest {
    accountId?: string;
}
export declare const GetTaxRegistrationRequest: S.Schema<GetTaxRegistrationRequest>;
export interface TaxDocumentMetadata {
    taxDocumentAccessToken: string;
    taxDocumentName: string;
}
export declare const TaxDocumentMetadata: S.Schema<TaxDocumentMetadata>;
export type TaxDocumentMetadatas = TaxDocumentMetadata[];
export declare const TaxDocumentMetadatas: S.$Array<S.Schema<TaxDocumentMetadata>>;
export interface BrazilAdditionalInfo {
    ccmCode?: string;
    legalNatureCode?: string;
}
export declare const BrazilAdditionalInfo: S.Schema<BrazilAdditionalInfo>;
export interface IndiaAdditionalInfo {
    pan?: string;
}
export declare const IndiaAdditionalInfo: S.Schema<IndiaAdditionalInfo>;
export interface AdditionalInfoResponse {
    malaysiaAdditionalInfo?: MalaysiaAdditionalInfo;
    israelAdditionalInfo?: IsraelAdditionalInfo;
    estoniaAdditionalInfo?: EstoniaAdditionalInfo;
    canadaAdditionalInfo?: CanadaAdditionalInfo;
    brazilAdditionalInfo?: BrazilAdditionalInfo;
    spainAdditionalInfo?: SpainAdditionalInfo;
    kenyaAdditionalInfo?: KenyaAdditionalInfo;
    southKoreaAdditionalInfo?: SouthKoreaAdditionalInfo;
    turkeyAdditionalInfo?: TurkeyAdditionalInfo;
    georgiaAdditionalInfo?: GeorgiaAdditionalInfo;
    italyAdditionalInfo?: ItalyAdditionalInfo;
    romaniaAdditionalInfo?: RomaniaAdditionalInfo;
    ukraineAdditionalInfo?: UkraineAdditionalInfo;
    polandAdditionalInfo?: PolandAdditionalInfo;
    saudiArabiaAdditionalInfo?: SaudiArabiaAdditionalInfo;
    indiaAdditionalInfo?: IndiaAdditionalInfo;
    indonesiaAdditionalInfo?: IndonesiaAdditionalInfo;
    vietnamAdditionalInfo?: VietnamAdditionalInfo;
    egyptAdditionalInfo?: EgyptAdditionalInfo;
    greeceAdditionalInfo?: GreeceAdditionalInfo;
    uzbekistanAdditionalInfo?: UzbekistanAdditionalInfo;
}
export declare const AdditionalInfoResponse: S.Schema<AdditionalInfoResponse>;
export interface TaxRegistration {
    registrationId: string;
    registrationType: TaxRegistrationType;
    legalName: string;
    status: TaxRegistrationStatus;
    sector?: Sector;
    taxDocumentMetadatas?: TaxDocumentMetadata[];
    certifiedEmailId?: string;
    additionalTaxInformation?: AdditionalInfoResponse;
    legalAddress: Address;
}
export declare const TaxRegistration: S.Schema<TaxRegistration>;
export interface GetTaxRegistrationResponse {
    taxRegistration?: TaxRegistration;
}
export declare const GetTaxRegistrationResponse: S.Schema<GetTaxRegistrationResponse>;
export interface DestinationS3Location {
    bucket: string;
    prefix?: string;
}
export declare const DestinationS3Location: S.Schema<DestinationS3Location>;
export interface GetTaxRegistrationDocumentRequest {
    destinationS3Location?: DestinationS3Location;
    taxDocumentMetadata: TaxDocumentMetadata;
}
export declare const GetTaxRegistrationDocumentRequest: S.Schema<GetTaxRegistrationDocumentRequest>;
export interface GetTaxRegistrationDocumentResponse {
    destinationFilePath?: string;
    presignedS3Url?: string;
}
export declare const GetTaxRegistrationDocumentResponse: S.Schema<GetTaxRegistrationDocumentResponse>;
export interface ListSupplementalTaxRegistrationsRequest {
    maxResults?: number;
    nextToken?: string;
}
export declare const ListSupplementalTaxRegistrationsRequest: S.Schema<ListSupplementalTaxRegistrationsRequest>;
export type SupplementalTaxRegistrationType = "VAT" | (string & {});
export declare const SupplementalTaxRegistrationType: S.String;
export interface SupplementalTaxRegistration {
    registrationId: string;
    registrationType: SupplementalTaxRegistrationType;
    legalName: string;
    address: Address;
    authorityId: string;
    status: TaxRegistrationStatus;
}
export declare const SupplementalTaxRegistration: S.Schema<SupplementalTaxRegistration>;
export type SupplementalTaxRegistrationList = SupplementalTaxRegistration[];
export declare const SupplementalTaxRegistrationList: S.$Array<S.Schema<SupplementalTaxRegistration>>;
export interface ListSupplementalTaxRegistrationsResponse {
    taxRegistrations: SupplementalTaxRegistration[];
    nextToken?: string;
}
export declare const ListSupplementalTaxRegistrationsResponse: S.Schema<ListSupplementalTaxRegistrationsResponse>;
export interface ListTaxExemptionsRequest {
    maxResults?: number;
    nextToken?: string;
}
export declare const ListTaxExemptionsRequest: S.Schema<ListTaxExemptionsRequest>;
export interface ListTaxExemptionsResponse {
    nextToken?: string;
    taxExemptionDetailsMap?: {
        [key: string]: TaxExemptionDetails | undefined;
    };
}
export declare const ListTaxExemptionsResponse: S.Schema<ListTaxExemptionsResponse>;
export interface ListTaxRegistrationsRequest {
    maxResults?: number;
    nextToken?: string;
}
export declare const ListTaxRegistrationsRequest: S.Schema<ListTaxRegistrationsRequest>;
export interface Jurisdiction {
    stateOrRegion?: string;
    countryCode: string;
}
export declare const Jurisdiction: S.Schema<Jurisdiction>;
export interface TaxRegistrationWithJurisdiction {
    registrationId: string;
    registrationType: TaxRegistrationType;
    legalName: string;
    status: TaxRegistrationStatus;
    sector?: Sector;
    taxDocumentMetadatas?: TaxDocumentMetadata[];
    certifiedEmailId?: string;
    additionalTaxInformation?: AdditionalInfoResponse;
    jurisdiction: Jurisdiction;
}
export declare const TaxRegistrationWithJurisdiction: S.Schema<TaxRegistrationWithJurisdiction>;
export interface TaxInheritanceDetails {
    parentEntityId?: string;
    inheritanceObtainedReason?: string;
}
export declare const TaxInheritanceDetails: S.Schema<TaxInheritanceDetails>;
export type AddressRoleType = "TaxAddress" | "BillingAddress" | "ContactAddress" | (string & {});
export declare const AddressRoleType: S.String;
export type AddressRoleMap = {
    [key in AddressRoleType]?: Jurisdiction;
};
export declare const AddressRoleMap: S.$Record<S.String, S.optional<S.Schema<Jurisdiction>>>;
export interface AccountMetaData {
    accountName?: string;
    seller?: string;
    address?: Address;
    addressType?: AddressRoleType;
    addressRoleMap?: {
        [key: string]: Jurisdiction | undefined;
    };
}
export declare const AccountMetaData: S.Schema<AccountMetaData>;
export interface AccountDetails {
    accountId?: string;
    taxRegistration?: TaxRegistrationWithJurisdiction;
    taxInheritanceDetails?: TaxInheritanceDetails;
    accountMetaData?: AccountMetaData;
}
export declare const AccountDetails: S.Schema<AccountDetails>;
export type AccountDetailsList = AccountDetails[];
export declare const AccountDetailsList: S.$Array<S.Schema<AccountDetails>>;
export interface ListTaxRegistrationsResponse {
    accountDetails: AccountDetails[];
    nextToken?: string;
}
export declare const ListTaxRegistrationsResponse: S.Schema<ListTaxRegistrationsResponse>;
export interface SupplementalTaxRegistrationEntry {
    registrationId: string;
    registrationType: SupplementalTaxRegistrationType;
    legalName: string;
    address: Address;
}
export declare const SupplementalTaxRegistrationEntry: S.Schema<SupplementalTaxRegistrationEntry>;
export interface PutSupplementalTaxRegistrationRequest {
    taxRegistrationEntry: SupplementalTaxRegistrationEntry;
}
export declare const PutSupplementalTaxRegistrationRequest: S.Schema<PutSupplementalTaxRegistrationRequest>;
export interface PutSupplementalTaxRegistrationResponse {
    authorityId: string;
    status: TaxRegistrationStatus;
}
export declare const PutSupplementalTaxRegistrationResponse: S.Schema<PutSupplementalTaxRegistrationResponse>;
export interface ExemptionCertificate {
    documentName: string;
    documentFile: Uint8Array;
}
export declare const ExemptionCertificate: S.Schema<ExemptionCertificate>;
export interface PutTaxExemptionRequest {
    accountIds: string[];
    authority: Authority;
    exemptionType: string;
    exemptionCertificate: ExemptionCertificate;
}
export declare const PutTaxExemptionRequest: S.Schema<PutTaxExemptionRequest>;
export interface PutTaxExemptionResponse {
    caseId?: string;
}
export declare const PutTaxExemptionResponse: S.Schema<PutTaxExemptionResponse>;
export interface PutTaxInheritanceRequest {
    heritageStatus?: HeritageStatus;
}
export declare const PutTaxInheritanceRequest: S.Schema<PutTaxInheritanceRequest>;
export interface PutTaxInheritanceResponse {
}
export declare const PutTaxInheritanceResponse: S.Schema<PutTaxInheritanceResponse>;
export interface PutTaxRegistrationRequest {
    accountId?: string;
    taxRegistrationEntry: TaxRegistrationEntry;
}
export declare const PutTaxRegistrationRequest: S.Schema<PutTaxRegistrationRequest>;
export interface PutTaxRegistrationResponse {
    status?: TaxRegistrationStatus;
}
export declare const PutTaxRegistrationResponse: S.Schema<PutTaxRegistrationResponse>;
declare const ConflictException_base: S.Class<ConflictException, S.TaggedStruct<"ConflictException", {
    readonly message: S.Schema<string | redacted.Redacted<string>>;
    readonly errorCode: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ConflictError: true;
    };
});
export declare class ConflictException extends ConflictException_base {
}
declare const InternalServerException_base: S.Class<InternalServerException, S.TaggedStruct<"InternalServerException", {
    readonly message: S.Schema<string | redacted.Redacted<string>>;
    readonly errorCode: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ServerError: true;
    };
});
export declare class InternalServerException extends InternalServerException_base {
}
declare const ValidationException_base: S.Class<ValidationException, S.TaggedStruct<"ValidationException", {
    readonly message: S.Schema<string | redacted.Redacted<string>>;
    readonly errorCode: S.String;
    readonly fieldList: S.optional<S.$Array<S.Schema<ValidationExceptionField>>>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class ValidationException extends ValidationException_base {
}
declare const ResourceNotFoundException_base: S.Class<ResourceNotFoundException, S.TaggedStruct<"ResourceNotFoundException", {
    readonly message: S.Schema<string | redacted.Redacted<string>>;
    readonly errorCode: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class ResourceNotFoundException extends ResourceNotFoundException_base {
}
declare const AccessDeniedException_base: S.Class<AccessDeniedException, S.TaggedStruct<"AccessDeniedException", {
    readonly message: S.Schema<string | redacted.Redacted<string>>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        AuthError: true;
    };
});
export declare class AccessDeniedException extends AccessDeniedException_base {
}
declare const AttachmentUploadException_base: S.Class<AttachmentUploadException, S.TaggedStruct<"AttachmentUploadException", {
    readonly message: S.Schema<string | redacted.Redacted<string>>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class AttachmentUploadException extends AttachmentUploadException_base {
}
declare const CaseCreationLimitExceededException_base: S.Class<CaseCreationLimitExceededException, S.TaggedStruct<"CaseCreationLimitExceededException", {
    readonly message: S.Schema<string | redacted.Redacted<string>>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class CaseCreationLimitExceededException extends CaseCreationLimitExceededException_base {
}
export type BatchDeleteTaxRegistrationError = ConflictException | InternalServerException | ValidationException | CommonErrors;
/**
 * Deletes tax registration for multiple accounts in batch. This can be used to delete tax
 * registrations for up to five accounts in one batch.
 *
 * This API operation can't be used to delete your tax registration in Brazil. Use the Payment preferences page in the Billing and Cost Management console instead.
 */
export declare const batchDeleteTaxRegistration: API.OperationMethod<BatchDeleteTaxRegistrationRequest, BatchDeleteTaxRegistrationResponse, BatchDeleteTaxRegistrationError, Credentials | Region | HttpClient.HttpClient>;
export type BatchGetTaxExemptionsError = InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Get the active tax exemptions for a given list of accounts. The IAM action is `tax:GetExemptions`.
 */
export declare const batchGetTaxExemptions: API.OperationMethod<BatchGetTaxExemptionsRequest, BatchGetTaxExemptionsResponse, BatchGetTaxExemptionsError, Credentials | Region | HttpClient.HttpClient>;
export type BatchPutTaxRegistrationError = ConflictException | InternalServerException | ValidationException | CommonErrors;
/**
 * Adds or updates tax registration for multiple accounts in batch. This can be used to add
 * or update tax registrations for up to five accounts in one batch. You can't set a TRN if there's a pending TRN. You'll need to delete the pending TRN first.
 *
 * To call this API operation for specific countries, see the following country-specific
 * requirements.
 *
 * **Bangladesh**
 *
 * - You must specify the tax registration certificate document in the
 * `taxRegistrationDocuments` field of the `VerificationDetails`
 * object.
 *
 * **Brazil**
 *
 * - You must complete the tax registration process in the Payment preferences page in the Billing and Cost Management console. After your TRN and billing address are verified, you can call this API operation.
 *
 * - For Amazon Web Services accounts created through Organizations, you can call this API operation when you don't have a billing address.
 *
 * **Georgia**
 *
 * - The valid `personType` values are `Physical Person` and `Business`.
 *
 * **Indonesia**
 *
 * - `PutTaxRegistration`: The use of this operation to submit tax information is subject to the Amazon Web Services service terms. By submitting, you’re providing consent for Amazon Web Services to validate NIK, NPWP, and NITKU data, provided by you with the Directorate General of Taxes of Indonesia in accordance with the Minister of Finance Regulation (PMK) Number 112/PMK.03/2022.
 *
 * - `BatchPutTaxRegistration`: The use of this operation to submit tax information is subject to the Amazon Web Services service terms. By submitting, you’re providing consent for Amazon Web Services to validate NIK, NPWP, and NITKU data, provided by you with the Directorate General of Taxes of Indonesia in accordance with the Minister of Finance Regulation (PMK) Number 112/PMK.03/2022, through our third-party partner PT Achilles Advanced Management (OnlinePajak).
 *
 * - You must specify the `taxRegistrationNumberType` in the `indonesiaAdditionalInfo` field of the `additionalTaxInformation` object.
 *
 * - If you specify `decisionNumber`, you must specify the `ppnExceptionDesignationCode` in the `indonesiaAdditionalInfo` field of the `additionalTaxInformation` object. If the `taxRegistrationNumberType` is set to NPWP or NITKU, valid values for `ppnExceptionDesignationCode` are either `01`, `02`, `03`, `07`, or `08`.
 *
 * For other `taxRegistrationNumberType` values, `ppnExceptionDesignationCode` must be either `01`, `07`, or `08`.
 *
 * - If `ppnExceptionDesignationCode` is `07`, you must specify the `decisionNumber` in the `indonesiaAdditionalInfo` field of the `additionalTaxInformation` object.
 *
 * **Kenya**
 *
 * - You must specify the `personType` in the `kenyaAdditionalInfo`
 * field of the `additionalTaxInformation` object.
 *
 * - If the `personType` is `Physical Person`, you must specify the
 * tax registration certificate document in the `taxRegistrationDocuments` field
 * of the `VerificationDetails` object.
 *
 * **Malaysia**
 *
 * - The sector valid values are `Business` and `Individual`.
 *
 * - `RegistrationType` valid values are `NRIC` for individual, and TIN and sales and service tax (SST) for Business.
 *
 * - For individual, you can specify the `taxInformationNumber` in `MalaysiaAdditionalInfo` with NRIC type, and a valid `MyKad` or NRIC number.
 *
 * - For business, you must specify a `businessRegistrationNumber` in `MalaysiaAdditionalInfo` with a TIN type and tax identification number.
 *
 * - For business resellers, you must specify a `businessRegistrationNumber` and `taxInformationNumber` in `MalaysiaAdditionalInfo` with a sales and service tax (SST) type and a valid SST number.
 *
 * - For business resellers with service codes, you must specify `businessRegistrationNumber`, `taxInformationNumber`, and distinct `serviceTaxCodes` in `MalaysiaAdditionalInfo` with a SST type and valid sales and service tax (SST) number. By using this API operation, Amazon Web Services registers your self-declaration that you’re an authorized business reseller registered with the Royal Malaysia Customs Department (RMCD), and have a valid SST number.
 *
 * - Amazon Web Services reserves the right to seek additional information and/or take other actions to
 * support your self-declaration as appropriate.
 *
 * - Amazon Web Services is currently registered under the following service tax codes. You must include
 * at least one of the service tax codes in the service tax code strings to declare yourself
 * as an authorized registered business reseller.
 *
 * Taxable service and service tax codes:
 *
 * Consultancy - 9907061674
 *
 * Training or coaching service - 9907071685
 *
 * IT service - 9907101676
 *
 * Digital services and electronic medium - 9907121690
 *
 * **Nepal**
 *
 * - The sector valid values are `Business` and `Individual`.
 *
 * **Saudi Arabia**
 *
 * - For `address`, you must specify `addressLine3`.
 *
 * **South Korea**
 *
 * - You must specify the `certifiedEmailId` and `legalName` in the
 * `TaxRegistrationEntry` object. Use Korean characters for
 * `legalName`.
 *
 * - You must specify the `businessRepresentativeName`,
 * `itemOfBusiness`, and `lineOfBusiness` in the
 * `southKoreaAdditionalInfo` field of the `additionalTaxInformation`
 * object. Use Korean characters for these fields.
 *
 * - You must specify the tax registration certificate document in the
 * `taxRegistrationDocuments` field of the `VerificationDetails`
 * object.
 *
 * - For the `address` object, use Korean characters for `addressLine1`, `addressLine2`
 * `city`, `postalCode`, and `stateOrRegion`.
 *
 * **Spain**
 *
 * - You must specify the `registrationType` in the
 * `spainAdditionalInfo` field of the `additionalTaxInformation`
 * object.
 *
 * - If the `registrationType` is `Local`, you must specify the tax
 * registration certificate document in the `taxRegistrationDocuments` field of
 * the `VerificationDetails` object.
 *
 * **Turkey**
 *
 * - You must specify the `sector` in the `taxRegistrationEntry` object.
 *
 * - If your `sector` is `Business`, `Individual`, or
 * `Government`:
 *
 * - Specify the `taxOffice`. If your
 * `sector` is `Individual`, don't enter this value.
 *
 * - (Optional) Specify the `kepEmailId`. If your
 * `sector` is `Individual`, don't enter this value.
 *
 * - **Note:** In the **Tax Settings** page of the Billing console, `Government` appears as **Public institutions**
 *
 * - If your `sector` is `Business` and you're subject to KDV tax,
 * you must specify your industry in the `industries` field.
 *
 * - For `address`, you must specify `districtOrCounty`.
 *
 * **Ukraine**
 *
 * - The sector valid values are `Business` and `Individual`.
 */
export declare const batchPutTaxRegistration: API.OperationMethod<BatchPutTaxRegistrationRequest, BatchPutTaxRegistrationResponse, BatchPutTaxRegistrationError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteSupplementalTaxRegistrationError = ConflictException | InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Deletes a supplemental tax registration for a single account.
 */
export declare const deleteSupplementalTaxRegistration: API.OperationMethod<DeleteSupplementalTaxRegistrationRequest, DeleteSupplementalTaxRegistrationResponse, DeleteSupplementalTaxRegistrationError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteTaxRegistrationError = ConflictException | InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Deletes tax registration for a single account.
 *
 * This API operation can't be used to delete your tax registration in Brazil. Use the Payment preferences page in the Billing and Cost Management console instead.
 */
export declare const deleteTaxRegistration: API.OperationMethod<DeleteTaxRegistrationRequest, DeleteTaxRegistrationResponse, DeleteTaxRegistrationError, Credentials | Region | HttpClient.HttpClient>;
export type GetTaxExemptionTypesError = InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Get supported tax exemption types. The IAM action is `tax:GetExemptions`.
 */
export declare const getTaxExemptionTypes: API.OperationMethod<GetTaxExemptionTypesRequest, GetTaxExemptionTypesResponse, GetTaxExemptionTypesError, Credentials | Region | HttpClient.HttpClient>;
export type GetTaxInheritanceError = InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * The get account tax inheritance status.
 */
export declare const getTaxInheritance: API.OperationMethod<GetTaxInheritanceRequest, GetTaxInheritanceResponse, GetTaxInheritanceError, Credentials | Region | HttpClient.HttpClient>;
export type GetTaxRegistrationError = InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Retrieves tax registration for a single account.
 */
export declare const getTaxRegistration: API.OperationMethod<GetTaxRegistrationRequest, GetTaxRegistrationResponse, GetTaxRegistrationError, Credentials | Region | HttpClient.HttpClient>;
export type GetTaxRegistrationDocumentError = InternalServerException | ValidationException | CommonErrors;
/**
 * Downloads your tax documents to the Amazon S3 bucket that you specify in your
 * request.
 */
export declare const getTaxRegistrationDocument: API.OperationMethod<GetTaxRegistrationDocumentRequest, GetTaxRegistrationDocumentResponse, GetTaxRegistrationDocumentError, Credentials | Region | HttpClient.HttpClient>;
export type ListSupplementalTaxRegistrationsError = InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Retrieves supplemental tax registrations for a single account.
 */
export declare const listSupplementalTaxRegistrations: API.OperationMethod<ListSupplementalTaxRegistrationsRequest, ListSupplementalTaxRegistrationsResponse, ListSupplementalTaxRegistrationsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListSupplementalTaxRegistrationsRequest) => stream.Stream<ListSupplementalTaxRegistrationsResponse, ListSupplementalTaxRegistrationsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListSupplementalTaxRegistrationsRequest) => stream.Stream<SupplementalTaxRegistration, ListSupplementalTaxRegistrationsError, Credentials | Region | HttpClient.HttpClient>;
};
export type ListTaxExemptionsError = InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Retrieves the tax exemption of accounts listed in a consolidated billing family. The IAM action is `tax:GetExemptions`.
 */
export declare const listTaxExemptions: API.OperationMethod<ListTaxExemptionsRequest, ListTaxExemptionsResponse, ListTaxExemptionsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListTaxExemptionsRequest) => stream.Stream<ListTaxExemptionsResponse, ListTaxExemptionsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListTaxExemptionsRequest) => stream.Stream<unknown, ListTaxExemptionsError, Credentials | Region | HttpClient.HttpClient>;
};
export type ListTaxRegistrationsError = InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Retrieves the tax registration of accounts listed in a consolidated billing family. This
 * can be used to retrieve up to 100 accounts' tax registrations in one call (default 50).
 */
export declare const listTaxRegistrations: API.OperationMethod<ListTaxRegistrationsRequest, ListTaxRegistrationsResponse, ListTaxRegistrationsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListTaxRegistrationsRequest) => stream.Stream<ListTaxRegistrationsResponse, ListTaxRegistrationsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListTaxRegistrationsRequest) => stream.Stream<AccountDetails, ListTaxRegistrationsError, Credentials | Region | HttpClient.HttpClient>;
};
export type PutSupplementalTaxRegistrationError = ConflictException | InternalServerException | ValidationException | CommonErrors;
/**
 * Stores supplemental tax registration for a single account.
 */
export declare const putSupplementalTaxRegistration: API.OperationMethod<PutSupplementalTaxRegistrationRequest, PutSupplementalTaxRegistrationResponse, PutSupplementalTaxRegistrationError, Credentials | Region | HttpClient.HttpClient>;
export type PutTaxExemptionError = AccessDeniedException | AttachmentUploadException | CaseCreationLimitExceededException | InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * Adds the tax exemption for a single account or all accounts listed in a consolidated billing family. The IAM action is `tax:UpdateExemptions`.
 */
export declare const putTaxExemption: API.OperationMethod<PutTaxExemptionRequest, PutTaxExemptionResponse, PutTaxExemptionError, Credentials | Region | HttpClient.HttpClient>;
export type PutTaxInheritanceError = ConflictException | InternalServerException | ResourceNotFoundException | ValidationException | CommonErrors;
/**
 * The updated tax inheritance status.
 */
export declare const putTaxInheritance: API.OperationMethod<PutTaxInheritanceRequest, PutTaxInheritanceResponse, PutTaxInheritanceError, Credentials | Region | HttpClient.HttpClient>;
export type PutTaxRegistrationError = ConflictException | InternalServerException | ValidationException | CommonErrors;
/**
 * Adds or updates tax registration for a single account. You can't set a TRN if there's a pending TRN. You'll need to delete the pending TRN first.
 *
 * To call this API operation for specific countries, see the following country-specific
 * requirements.
 *
 * **Bangladesh**
 *
 * - You must specify the tax registration certificate document in the
 * `taxRegistrationDocuments` field of the `VerificationDetails`
 * object.
 *
 * **Brazil**
 *
 * - You must complete the tax registration process in the Payment preferences page in the Billing and Cost Management console. After your TRN and billing address are verified, you can call this API operation.
 *
 * - For Amazon Web Services accounts created through Organizations, you can call this API operation when you don't have a billing address.
 *
 * **Georgia**
 *
 * - The valid `personType` values are `Physical Person` and `Business`.
 *
 * **Indonesia**
 *
 * - `PutTaxRegistration`: The use of this operation to submit tax information is subject to the Amazon Web Services service terms. By submitting, you’re providing consent for Amazon Web Services to validate NIK, NPWP, and NITKU data, provided by you with the Directorate General of Taxes of Indonesia in accordance with the Minister of Finance Regulation (PMK) Number 112/PMK.03/2022.
 *
 * - `BatchPutTaxRegistration`: The use of this operation to submit tax information is subject to the Amazon Web Services service terms. By submitting, you’re providing consent for Amazon Web Services to validate NIK, NPWP, and NITKU data, provided by you with the Directorate General of Taxes of Indonesia in accordance with the Minister of Finance Regulation (PMK) Number 112/PMK.03/2022, through our third-party partner PT Achilles Advanced Management (OnlinePajak).
 *
 * - You must specify the `taxRegistrationNumberType` in the `indonesiaAdditionalInfo` field of the `additionalTaxInformation` object.
 *
 * - If you specify `decisionNumber`, you must specify the `ppnExceptionDesignationCode` in the `indonesiaAdditionalInfo` field of the `additionalTaxInformation` object. If the `taxRegistrationNumberType` is set to NPWP or NITKU, valid values for `ppnExceptionDesignationCode` are either `01`, `02`, `03`, `07`, or `08`.
 *
 * For other `taxRegistrationNumberType` values, `ppnExceptionDesignationCode` must be either `01`, `07`, or `08`.
 *
 * - If `ppnExceptionDesignationCode` is `07`, you must specify the `decisionNumber` in the `indonesiaAdditionalInfo` field of the `additionalTaxInformation` object.
 *
 * **Kenya**
 *
 * - You must specify the `personType` in the `kenyaAdditionalInfo`
 * field of the `additionalTaxInformation` object.
 *
 * - If the `personType` is `Physical Person`, you must specify the
 * tax registration certificate document in the `taxRegistrationDocuments` field
 * of the `VerificationDetails` object.
 *
 * **Malaysia**
 *
 * - The sector valid values are `Business` and `Individual`.
 *
 * - `RegistrationType` valid values are `NRIC` for individual, and TIN and sales and service tax (SST) for Business.
 *
 * - For individual, you can specify the `taxInformationNumber` in `MalaysiaAdditionalInfo` with NRIC type, and a valid `MyKad` or NRIC number.
 *
 * - For business, you must specify a `businessRegistrationNumber` in `MalaysiaAdditionalInfo` with a TIN type and tax identification number.
 *
 * - For business resellers, you must specify a `businessRegistrationNumber` and `taxInformationNumber` in `MalaysiaAdditionalInfo` with a sales and service tax (SST) type and a valid SST number.
 *
 * - For business resellers with service codes, you must specify `businessRegistrationNumber`, `taxInformationNumber`, and distinct `serviceTaxCodes` in `MalaysiaAdditionalInfo` with a SST type and valid sales and service tax (SST) number. By using this API operation, Amazon Web Services registers your self-declaration that you’re an authorized business reseller registered with the Royal Malaysia Customs Department (RMCD), and have a valid SST number.
 *
 * - Amazon Web Services reserves the right to seek additional information and/or take other actions to
 * support your self-declaration as appropriate.
 *
 * - Amazon Web Services is currently registered under the following service tax codes. You must include
 * at least one of the service tax codes in the service tax code strings to declare yourself
 * as an authorized registered business reseller.
 *
 * Taxable service and service tax codes:
 *
 * Consultancy - 9907061674
 *
 * Training or coaching service - 9907071685
 *
 * IT service - 9907101676
 *
 * Digital services and electronic medium - 9907121690
 *
 * **Nepal**
 *
 * - The sector valid values are `Business` and `Individual`.
 *
 * **Saudi Arabia**
 *
 * - For `address`, you must specify `addressLine3`.
 *
 * **South Korea**
 *
 * - You must specify the `certifiedEmailId` and `legalName` in the
 * `TaxRegistrationEntry` object. Use Korean characters for
 * `legalName`.
 *
 * - You must specify the `businessRepresentativeName`,
 * `itemOfBusiness`, and `lineOfBusiness` in the
 * `southKoreaAdditionalInfo` field of the `additionalTaxInformation`
 * object. Use Korean characters for these fields.
 *
 * - You must specify the tax registration certificate document in the
 * `taxRegistrationDocuments` field of the `VerificationDetails`
 * object.
 *
 * - For the `address` object, use Korean characters for `addressLine1`, `addressLine2`
 * `city`, `postalCode`, and `stateOrRegion`.
 *
 * **Spain**
 *
 * - You must specify the `registrationType` in the
 * `spainAdditionalInfo` field of the `additionalTaxInformation`
 * object.
 *
 * - If the `registrationType` is `Local`, you must specify the tax
 * registration certificate document in the `taxRegistrationDocuments` field of
 * the `VerificationDetails` object.
 *
 * **Turkey**
 *
 * - You must specify the `sector` in the `taxRegistrationEntry` object.
 *
 * - If your `sector` is `Business`, `Individual`, or
 * `Government`:
 *
 * - Specify the `taxOffice`. If your
 * `sector` is `Individual`, don't enter this value.
 *
 * - (Optional) Specify the `kepEmailId`. If your
 * `sector` is `Individual`, don't enter this value.
 *
 * - **Note:** In the **Tax Settings** page of the Billing console, `Government` appears as **Public institutions**
 *
 * - If your `sector` is `Business` and you're subject to KDV tax,
 * you must specify your industry in the `industries` field.
 *
 * - For `address`, you must specify `districtOrCounty`.
 *
 * **Ukraine**
 *
 * - The sector valid values are `Business` and `Individual`.
 */
export declare const putTaxRegistration: API.OperationMethod<PutTaxRegistrationRequest, PutTaxRegistrationResponse, PutTaxRegistrationError, Credentials | Region | HttpClient.HttpClient>;
export {};
//# sourceMappingURL=taxsettings.d.ts.map