export interface Address {
    /** The first line of the address. */
    addressLine1: string;
    /** The second line of the address, if applicable. */
    addressLine2?: string;
    /** The third line of the address, if applicable. Currently, the Tax Settings API accepts the addressLine3 parameter only for Saudi Arabia. When you specify a TRN in Saudi Arabia, you must enter the addre */
    addressLine3?: string;
    /** The district or county the address is located. For addresses in Brazil, this parameter uses the name of the neighborhood. When you set a TRN in Brazil, use districtOrCounty for the neighborhood name. */
    districtOrCounty?: string;
    /** The city that the address is in. */
    city: string;
    /** The state, region, or province that the address is located. This field is only required for Canada, India, United Arab Emirates, Romania, and Brazil (CPF). It is optional for all other countries. If t */
    stateOrRegion?: string;
    /** The postal code associated with the address. */
    postalCode: string;
    /** The country code for the country that the address is in. */
    countryCode: string;
}
export interface AdditionalInfoRequest {
    /** Additional tax information to specify for a TRN in Malaysia. */
    malaysiaAdditionalInfo?: any;
    /** Additional tax information to specify for a TRN in Israel. */
    israelAdditionalInfo?: any;
    /** Additional tax information to specify for a TRN in Estonia. */
    estoniaAdditionalInfo?: any;
    /** Additional tax information associated with your TRN in Canada. */
    canadaAdditionalInfo?: any;
    /** Additional tax information to specify for a TRN in Spain. */
    spainAdditionalInfo?: any;
    /** Additional tax information to specify for a TRN in Kenya. */
    kenyaAdditionalInfo?: any;
    /** Additional tax information to specify for a TRN in South Korea. */
    southKoreaAdditionalInfo?: any;
    /** Additional tax information to specify for a TRN in Turkey. */
    turkeyAdditionalInfo?: any;
    /** Additional tax information to specify for a TRN in Georgia. */
    georgiaAdditionalInfo?: any;
    /** Additional tax information to specify for a TRN in Italy. */
    italyAdditionalInfo?: any;
    /** Additional tax information to specify for a TRN in Romania. */
    romaniaAdditionalInfo?: any;
    /** Additional tax information associated with your TRN in Ukraine. */
    ukraineAdditionalInfo?: any;
    /** Additional tax information associated with your TRN in Poland. */
    polandAdditionalInfo?: any;
    /** Additional tax information associated with your TRN in Saudi Arabia. */
    saudiArabiaAdditionalInfo?: any;
    indonesiaAdditionalInfo?: any;
    /** Additional tax information to specify for a TRN in Vietnam. */
    vietnamAdditionalInfo?: any;
    /** Additional tax information to specify for a TRN in Egypt. */
    egyptAdditionalInfo?: any;
    /** Additional tax information to specify for a TRN in Greece. */
    greeceAdditionalInfo?: any;
    /** Additional tax information to specify for a TRN in Uzbekistan. */
    uzbekistanAdditionalInfo?: any;
}
export interface VerificationDetails {
    /** Date of birth to verify your submitted TRN. Use the YYYY-MM-DD format. */
    dateOfBirth?: string;
    /** The tax registration document, which is required for specific countries such as Bangladesh, Kenya, South Korea and Spain. */
    taxRegistrationDocuments?: any[];
}
export interface TaxRegistrationEntry {
    /** Your tax registration unique identifier. */
    registrationId: string;
    /** Your tax registration type. This can be either VAT or GST. */
    registrationType: 'VAT' | 'GST' | 'CPF' | 'CNPJ' | 'SST' | 'TIN' | 'NRIC';
    /** The legal name associated with your TRN. If you're setting a TRN in Brazil, you don't need to specify the legal name. For TRNs in other countries, you must specify the legal name. */
    legalName?: string;
    /** The legal address associated with your TRN. If you're setting a TRN in Brazil for the CNPJ tax type, you don't need to specify the legal address. For TRNs in other countries and for CPF tax types Braz */
    legalAddress?: Address;
    /** The industry that describes your business. For business-to-business (B2B) customers, specify Business. For business-to-consumer (B2C) customers, specify Individual. For business-to-government (B2G), s */
    sector?: 'Business' | 'Individual' | 'Government';
    /** Additional tax information associated with your TRN. You only need to specify this parameter if Amazon Web Services collects any additional information for your country within AdditionalInfoRequest. */
    additionalTaxInformation?: AdditionalInfoRequest;
    /** Additional details needed to verify your TRN information in Brazil. You only need to specify this parameter when you set a TRN in Brazil that is the CPF tax type. Don't specify this parameter to set a */
    verificationDetails?: VerificationDetails;
    /** The email address to receive VAT invoices. */
    certifiedEmailId?: string;
}
export interface DestinationS3Location {
    /** The name of your Amazon S3 bucket that you specify to download your tax documents to. */
    bucket: string;
    /** The Amazon S3 object prefix that you specify for your tax document file. */
    prefix?: string;
}
export interface TaxDocumentMetadata {
    /** The tax document access token, which contains information that the Tax Settings API uses to locate the tax document. If you update your tax registration, the existing taxDocumentAccessToken won't be v */
    taxDocumentAccessToken: string;
    /** The name of your tax document. */
    taxDocumentName: string;
}
export interface SupplementalTaxRegistrationEntry {
    /** The supplemental TRN unique identifier. */
    registrationId: string;
    /** Type of supplemental TRN. Currently, this can only be VAT. */
    registrationType: 'VAT';
    /** The legal name associated with your TRN registration. */
    legalName: string;
    address: Address;
}
export interface Authority {
    /** The country code for the country that the address is in. */
    country: string;
    /** The state that the address is located. */
    state?: string;
}
export interface ExemptionCertificate {
    /** The exemption certificate file name. */
    documentName: string;
    /** The exemption certificate file content. */
    documentFile: string;
}
export interface BatchDeleteTaxRegistrationInput {
    /** List of unique account identifiers. */
    accountIds: string[];
}
export interface BatchGetTaxExemptionsInput {
    /** List of unique account identifiers. */
    accountIds: string[];
}
export interface BatchPutTaxRegistrationInput {
    /** List of unique account identifiers. */
    accountIds: string[];
    /** Your TRN information that will be stored to the accounts mentioned in putEntries. */
    taxRegistrationEntry: TaxRegistrationEntry;
}
export interface DeleteSupplementalTaxRegistrationInput {
    /** The unique authority Id for the supplemental TRN information that needs to be deleted. */
    authorityId: string;
}
export interface DeleteTaxRegistrationInput {
    /** Unique account identifier for the TRN information that needs to be deleted. If this isn't passed, the account ID corresponding to the credentials of the API caller will be used for this parameter. */
    accountId?: string;
}
export interface GetTaxRegistrationInput {
    /** Your unique account identifier. */
    accountId?: string;
}
export interface GetTaxRegistrationDocumentInput {
    /** The metadata for your tax document. */
    taxDocumentMetadata: TaxDocumentMetadata;
    /** The Amazon S3 bucket that you specify to download your tax documents to. */
    destinationS3Location?: DestinationS3Location;
}
export interface ListSupplementalTaxRegistrationsInput {
    /** The number of taxRegistrations results you want in one response. */
    maxResults?: number;
    /** The token to retrieve the next set of results. */
    nextToken?: string;
}
export interface ListTaxExemptionsInput {
    /** The number of results you want in one response. */
    maxResults?: number;
    /** The token to retrieve the next set of results. */
    nextToken?: string;
}
export interface ListTaxRegistrationsInput {
    /** Number of accountDetails results you want in one response. */
    maxResults?: number;
    /** The token to retrieve the next set of results. */
    nextToken?: string;
}
export interface PutSupplementalTaxRegistrationInput {
    /** The supplemental TRN information that will be stored for the caller account ID. */
    taxRegistrationEntry: SupplementalTaxRegistrationEntry;
}
export interface PutTaxExemptionInput {
    /** The list of unique account identifiers. */
    accountIds: string[];
    authority: Authority;
    exemptionCertificate: ExemptionCertificate;
    /** The exemption type. Use the supported tax exemption type description. */
    exemptionType: string;
}
export interface PutTaxInheritanceInput {
    /** The tax inheritance status. */
    heritageStatus?: 'OptIn' | 'OptOut';
}
export interface PutTaxRegistrationInput {
    /** Your TRN information that will be stored to the account mentioned in accountId. */
    taxRegistrationEntry: TaxRegistrationEntry;
    /** Your unique account identifier. */
    accountId?: string;
}
/** TaxSettings service binding for Step Functions SDK integrations. */
export declare class TaxSettings {
    constructor();
    batchDeleteTaxRegistration<T>(params: BatchDeleteTaxRegistrationInput): Promise<T>;
    batchGetTaxExemptions<T>(params: BatchGetTaxExemptionsInput): Promise<T>;
    batchPutTaxRegistration<T>(params: BatchPutTaxRegistrationInput): Promise<T>;
    deleteSupplementalTaxRegistration<T>(params: DeleteSupplementalTaxRegistrationInput): Promise<T>;
    deleteTaxRegistration<T>(params: DeleteTaxRegistrationInput): Promise<T>;
    getTaxExemptionTypes<T>(params: Record<string, any>): Promise<T>;
    getTaxInheritance<T>(params: Record<string, any>): Promise<T>;
    getTaxRegistration<T>(params: GetTaxRegistrationInput): Promise<T>;
    getTaxRegistrationDocument<T>(params: GetTaxRegistrationDocumentInput): Promise<T>;
    listSupplementalTaxRegistrations<T>(params: ListSupplementalTaxRegistrationsInput): Promise<T>;
    listTaxExemptions<T>(params: ListTaxExemptionsInput): Promise<T>;
    listTaxRegistrations<T>(params: ListTaxRegistrationsInput): Promise<T>;
    putSupplementalTaxRegistration<T>(params: PutSupplementalTaxRegistrationInput): Promise<T>;
    putTaxExemption<T>(params: PutTaxExemptionInput): Promise<T>;
    putTaxInheritance<T>(params: PutTaxInheritanceInput): Promise<T>;
    putTaxRegistration<T>(params: PutTaxRegistrationInput): Promise<T>;
}
//# sourceMappingURL=TaxSettings.d.ts.map