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 AccountIdString = string;
export type BasicStringWithoutSpace = string;
export type BasicString = string;
export type SensitiveBasicStringWithoutSpace = string | redacted.Redacted<string>;
export type InvoiceUnitArnString = string;
export type InvoiceUnitName = string;
export type DescriptionString = string;
export type TaxInheritanceDisabledFlag = boolean;
export type ResourceTagKey = string;
export type ResourceTagValue = string;
export type EmailString = string;
export type ProcurementPortalPreferenceArnString = string;
export type StringWithoutNewLine = string;
export type AsOfTimestamp = Date;
export type LastModifiedTimestamp = Date;
export type Month = number;
export type Year = number;
export type NextTokenString = string;
export type InvoiceSummariesMaxResults = number;
export type CurrencyCode = string;
export type MaxResultsInteger = number;
export type MaxResults = number;
export type TagrisArn = string;
export type AccountIdList = string[];
export declare const AccountIdList: S.$Array<S.String>;
export interface BatchGetInvoiceProfileRequest {
    AccountIds: string[];
}
export declare const BatchGetInvoiceProfileRequest: S.Schema<BatchGetInvoiceProfileRequest>;
export interface ReceiverAddress {
    AddressLine1?: string;
    AddressLine2?: string;
    AddressLine3?: string;
    DistrictOrCounty?: string;
    City?: string;
    StateOrRegion?: string;
    CountryCode?: string;
    CompanyName?: string;
    PostalCode?: string;
}
export declare const ReceiverAddress: S.Schema<ReceiverAddress>;
export interface InvoiceProfile {
    AccountId?: string;
    ReceiverName?: string;
    ReceiverAddress?: ReceiverAddress;
    ReceiverEmail?: string | redacted.Redacted<string>;
    Issuer?: string;
    TaxRegistrationNumber?: string | redacted.Redacted<string>;
}
export declare const InvoiceProfile: S.Schema<InvoiceProfile>;
export type ProfileList = InvoiceProfile[];
export declare const ProfileList: S.$Array<S.Schema<InvoiceProfile>>;
export interface BatchGetInvoiceProfileResponse {
    Profiles?: InvoiceProfile[];
}
export declare const BatchGetInvoiceProfileResponse: S.Schema<BatchGetInvoiceProfileResponse>;
export type ValidationExceptionReason = "nonMemberPresent" | "maxAccountsExceeded" | "maxInvoiceUnitsExceeded" | "duplicateInvoiceUnit" | "mutualExclusionError" | "accountMembershipError" | "taxSettingsError" | "expiredNextToken" | "invalidNextToken" | "invalidInput" | "fieldValidationFailed" | "cannotParse" | "unknownOperation" | "other" | (string & {});
export declare const ValidationExceptionReason: S.String;
export interface ValidationExceptionField {
    name: string;
    message: string;
}
export declare const ValidationExceptionField: S.Schema<ValidationExceptionField>;
export type ValidationExceptionFieldList = ValidationExceptionField[];
export declare const ValidationExceptionFieldList: S.$Array<S.Schema<ValidationExceptionField>>;
export type RuleAccountIdList = string[];
export declare const RuleAccountIdList: S.$Array<S.String>;
export interface InvoiceUnitRule {
    LinkedAccounts?: string[];
    BillSourceAccounts?: string[];
}
export declare const InvoiceUnitRule: S.Schema<InvoiceUnitRule>;
export interface ResourceTag {
    Key: string;
    Value: string;
}
export declare const ResourceTag: S.Schema<ResourceTag>;
export type ResourceTagList = ResourceTag[];
export declare const ResourceTagList: S.$Array<S.Schema<ResourceTag>>;
export interface CreateInvoiceUnitRequest {
    Name: string;
    InvoiceReceiver: string;
    Description?: string;
    TaxInheritanceDisabled?: boolean;
    Rule: InvoiceUnitRule;
    ResourceTags?: ResourceTag[];
}
export declare const CreateInvoiceUnitRequest: S.Schema<CreateInvoiceUnitRequest>;
export interface CreateInvoiceUnitResponse {
    InvoiceUnitArn?: string;
}
export declare const CreateInvoiceUnitResponse: S.Schema<CreateInvoiceUnitResponse>;
export type ProcurementPortalName = "SAP_BUSINESS_NETWORK" | "COUPA" | (string & {});
export declare const ProcurementPortalName: S.String;
export type BuyerDomain = "NetworkID" | (string & {});
export declare const BuyerDomain: S.String;
export type SupplierDomain = "NetworkID" | (string & {});
export declare const SupplierDomain: S.String;
export type InvoiceUnitArns = string[];
export declare const InvoiceUnitArns: S.$Array<S.String>;
export type SellerOfRecords = string[];
export declare const SellerOfRecords: S.$Array<S.String>;
export interface ProcurementPortalPreferenceSelector {
    InvoiceUnitArns?: string[];
    SellerOfRecords?: string[];
}
export declare const ProcurementPortalPreferenceSelector: S.Schema<ProcurementPortalPreferenceSelector>;
export interface TestEnvPreferenceInput {
    BuyerDomain: BuyerDomain;
    BuyerIdentifier: string;
    SupplierDomain: SupplierDomain;
    SupplierIdentifier: string;
    ProcurementPortalSharedSecret?: string;
    ProcurementPortalInstanceEndpoint?: string;
}
export declare const TestEnvPreferenceInput: S.Schema<TestEnvPreferenceInput>;
export type EinvoiceDeliveryDocumentType = "AWS_CLOUD_INVOICE" | "AWS_CLOUD_CREDIT_MEMO" | "AWS_MARKETPLACE_INVOICE" | "AWS_MARKETPLACE_CREDIT_MEMO" | "AWS_REQUEST_FOR_PAYMENT" | (string & {});
export declare const EinvoiceDeliveryDocumentType: S.String;
export type EinvoiceDeliveryDocumentTypes = EinvoiceDeliveryDocumentType[];
export declare const EinvoiceDeliveryDocumentTypes: S.$Array<S.String>;
export type EinvoiceDeliveryAttachmentType = "INVOICE_PDF" | "RFP_PDF" | (string & {});
export declare const EinvoiceDeliveryAttachmentType: S.String;
export type EinvoiceDeliveryAttachmentTypes = EinvoiceDeliveryAttachmentType[];
export declare const EinvoiceDeliveryAttachmentTypes: S.$Array<S.String>;
export type Protocol = "CXML" | (string & {});
export declare const Protocol: S.String;
export type PurchaseOrderDataSourceType = "ASSOCIATED_PURCHASE_ORDER_REQUIRED" | "PURCHASE_ORDER_NOT_REQUIRED" | (string & {});
export declare const PurchaseOrderDataSourceType: S.String;
export interface PurchaseOrderDataSource {
    EinvoiceDeliveryDocumentType?: EinvoiceDeliveryDocumentType;
    PurchaseOrderDataSourceType?: PurchaseOrderDataSourceType;
}
export declare const PurchaseOrderDataSource: S.Schema<PurchaseOrderDataSource>;
export type PurchaseOrderDataSources = PurchaseOrderDataSource[];
export declare const PurchaseOrderDataSources: S.$Array<S.Schema<PurchaseOrderDataSource>>;
export type ConnectionTestingMethod = "PROD_ENV_DOLLAR_TEST" | "TEST_ENV_REPLAY_TEST" | (string & {});
export declare const ConnectionTestingMethod: S.String;
export interface EinvoiceDeliveryPreference {
    EinvoiceDeliveryDocumentTypes: EinvoiceDeliveryDocumentType[];
    EinvoiceDeliveryAttachmentTypes?: EinvoiceDeliveryAttachmentType[];
    Protocol: Protocol;
    PurchaseOrderDataSources: PurchaseOrderDataSource[];
    ConnectionTestingMethod: ConnectionTestingMethod;
    EinvoiceDeliveryActivationDate: Date;
}
export declare const EinvoiceDeliveryPreference: S.Schema<EinvoiceDeliveryPreference>;
export interface Contact {
    Name?: string;
    Email?: string;
}
export declare const Contact: S.Schema<Contact>;
export type Contacts = Contact[];
export declare const Contacts: S.$Array<S.Schema<Contact>>;
export interface CreateProcurementPortalPreferenceRequest {
    ProcurementPortalName: ProcurementPortalName;
    BuyerDomain: BuyerDomain;
    BuyerIdentifier: string;
    SupplierDomain: SupplierDomain;
    SupplierIdentifier: string;
    Selector?: ProcurementPortalPreferenceSelector;
    ProcurementPortalSharedSecret?: string | redacted.Redacted<string>;
    ProcurementPortalInstanceEndpoint?: string;
    TestEnvPreference?: TestEnvPreferenceInput;
    EinvoiceDeliveryEnabled: boolean;
    EinvoiceDeliveryPreference?: EinvoiceDeliveryPreference;
    PurchaseOrderRetrievalEnabled: boolean;
    Contacts: Contact[];
    ResourceTags?: ResourceTag[];
    ClientToken?: string;
}
export declare const CreateProcurementPortalPreferenceRequest: S.Schema<CreateProcurementPortalPreferenceRequest>;
export interface CreateProcurementPortalPreferenceResponse {
    ProcurementPortalPreferenceArn: string;
}
export declare const CreateProcurementPortalPreferenceResponse: S.Schema<CreateProcurementPortalPreferenceResponse>;
export interface DeleteInvoiceUnitRequest {
    InvoiceUnitArn: string;
}
export declare const DeleteInvoiceUnitRequest: S.Schema<DeleteInvoiceUnitRequest>;
export interface DeleteInvoiceUnitResponse {
    InvoiceUnitArn?: string;
}
export declare const DeleteInvoiceUnitResponse: S.Schema<DeleteInvoiceUnitResponse>;
export interface DeleteProcurementPortalPreferenceRequest {
    ProcurementPortalPreferenceArn: string;
}
export declare const DeleteProcurementPortalPreferenceRequest: S.Schema<DeleteProcurementPortalPreferenceRequest>;
export interface DeleteProcurementPortalPreferenceResponse {
    ProcurementPortalPreferenceArn: string;
}
export declare const DeleteProcurementPortalPreferenceResponse: S.Schema<DeleteProcurementPortalPreferenceResponse>;
export interface GetInvoicePDFRequest {
    InvoiceId: string;
}
export declare const GetInvoicePDFRequest: S.Schema<GetInvoicePDFRequest>;
export interface SupplementalDocument {
    DocumentUrl?: string;
    DocumentUrlExpirationDate?: Date;
}
export declare const SupplementalDocument: S.Schema<SupplementalDocument>;
export type SupplementalDocuments = SupplementalDocument[];
export declare const SupplementalDocuments: S.$Array<S.Schema<SupplementalDocument>>;
export interface InvoicePDF {
    InvoiceId?: string;
    DocumentUrl?: string;
    DocumentUrlExpirationDate?: Date;
    SupplementalDocuments?: SupplementalDocument[];
}
export declare const InvoicePDF: S.Schema<InvoicePDF>;
export interface GetInvoicePDFResponse {
    InvoicePDF?: InvoicePDF;
}
export declare const GetInvoicePDFResponse: S.Schema<GetInvoicePDFResponse>;
export interface GetInvoiceUnitRequest {
    InvoiceUnitArn: string;
    AsOf?: Date;
}
export declare const GetInvoiceUnitRequest: S.Schema<GetInvoiceUnitRequest>;
export interface GetInvoiceUnitResponse {
    InvoiceUnitArn?: string;
    InvoiceReceiver?: string;
    Name?: string;
    Description?: string;
    TaxInheritanceDisabled?: boolean;
    Rule?: InvoiceUnitRule;
    LastModified?: Date;
}
export declare const GetInvoiceUnitResponse: S.Schema<GetInvoiceUnitResponse>;
export interface GetProcurementPortalPreferenceRequest {
    ProcurementPortalPreferenceArn: string;
}
export declare const GetProcurementPortalPreferenceRequest: S.Schema<GetProcurementPortalPreferenceRequest>;
export interface TestEnvPreference {
    BuyerDomain: BuyerDomain;
    BuyerIdentifier: string;
    SupplierDomain: SupplierDomain;
    SupplierIdentifier: string;
    ProcurementPortalSharedSecret?: string;
    ProcurementPortalInstanceEndpoint?: string;
    PurchaseOrderRetrievalEndpoint?: string;
}
export declare const TestEnvPreference: S.Schema<TestEnvPreference>;
export type ProcurementPortalPreferenceStatus = "PENDING_VERIFICATION" | "TEST_INITIALIZED" | "TEST_INITIALIZATION_FAILED" | "TEST_FAILED" | "ACTIVE" | "SUSPENDED" | (string & {});
export declare const ProcurementPortalPreferenceStatus: S.String;
export interface ProcurementPortalPreference {
    AwsAccountId: string;
    ProcurementPortalPreferenceArn: string;
    ProcurementPortalName: ProcurementPortalName;
    BuyerDomain: BuyerDomain;
    BuyerIdentifier: string;
    SupplierDomain: SupplierDomain;
    SupplierIdentifier: string;
    Selector?: ProcurementPortalPreferenceSelector;
    ProcurementPortalSharedSecret?: string;
    ProcurementPortalInstanceEndpoint?: string;
    PurchaseOrderRetrievalEndpoint?: string;
    TestEnvPreference?: TestEnvPreference;
    EinvoiceDeliveryEnabled: boolean;
    EinvoiceDeliveryPreference?: EinvoiceDeliveryPreference;
    PurchaseOrderRetrievalEnabled: boolean;
    Contacts?: Contact[];
    EinvoiceDeliveryPreferenceStatus?: ProcurementPortalPreferenceStatus;
    EinvoiceDeliveryPreferenceStatusReason?: string;
    PurchaseOrderRetrievalPreferenceStatus?: ProcurementPortalPreferenceStatus;
    PurchaseOrderRetrievalPreferenceStatusReason?: string;
    Version: number;
    CreateDate: Date;
    LastUpdateDate: Date;
}
export declare const ProcurementPortalPreference: S.Schema<ProcurementPortalPreference>;
export interface GetProcurementPortalPreferenceResponse {
    ProcurementPortalPreference: ProcurementPortalPreference;
}
export declare const GetProcurementPortalPreferenceResponse: S.Schema<GetProcurementPortalPreferenceResponse>;
export type ListInvoiceSummariesResourceType = "ACCOUNT_ID" | "INVOICE_ID" | (string & {});
export declare const ListInvoiceSummariesResourceType: S.String;
export interface InvoiceSummariesSelector {
    ResourceType: ListInvoiceSummariesResourceType;
    Value: string;
}
export declare const InvoiceSummariesSelector: S.Schema<InvoiceSummariesSelector>;
export interface DateInterval {
    StartDate: Date;
    EndDate: Date;
}
export declare const DateInterval: S.Schema<DateInterval>;
export interface BillingPeriod {
    Month: number;
    Year: number;
}
export declare const BillingPeriod: S.Schema<BillingPeriod>;
export interface InvoiceSummariesFilter {
    TimeInterval?: DateInterval;
    BillingPeriod?: BillingPeriod;
    InvoicingEntity?: string;
}
export declare const InvoiceSummariesFilter: S.Schema<InvoiceSummariesFilter>;
export interface ListInvoiceSummariesRequest {
    Selector: InvoiceSummariesSelector;
    Filter?: InvoiceSummariesFilter;
    NextToken?: string;
    MaxResults?: number;
}
export declare const ListInvoiceSummariesRequest: S.Schema<ListInvoiceSummariesRequest>;
export interface Entity {
    InvoicingEntity?: string;
}
export declare const Entity: S.Schema<Entity>;
export type InvoiceType = "INVOICE" | "CREDIT_MEMO" | (string & {});
export declare const InvoiceType: S.String;
export interface DiscountsBreakdownAmount {
    Description?: string;
    Amount?: string;
    Rate?: string;
}
export declare const DiscountsBreakdownAmount: S.Schema<DiscountsBreakdownAmount>;
export type DiscountsBreakdownAmountList = DiscountsBreakdownAmount[];
export declare const DiscountsBreakdownAmountList: S.$Array<S.Schema<DiscountsBreakdownAmount>>;
export interface DiscountsBreakdown {
    Breakdown?: DiscountsBreakdownAmount[];
    TotalAmount?: string;
}
export declare const DiscountsBreakdown: S.Schema<DiscountsBreakdown>;
export interface TaxesBreakdownAmount {
    Description?: string;
    Amount?: string;
    Rate?: string;
}
export declare const TaxesBreakdownAmount: S.Schema<TaxesBreakdownAmount>;
export type TaxesBreakdownAmountList = TaxesBreakdownAmount[];
export declare const TaxesBreakdownAmountList: S.$Array<S.Schema<TaxesBreakdownAmount>>;
export interface TaxesBreakdown {
    Breakdown?: TaxesBreakdownAmount[];
    TotalAmount?: string;
}
export declare const TaxesBreakdown: S.Schema<TaxesBreakdown>;
export interface FeesBreakdownAmount {
    Description?: string;
    Amount?: string;
    Rate?: string;
}
export declare const FeesBreakdownAmount: S.Schema<FeesBreakdownAmount>;
export type FeesBreakdownAmountList = FeesBreakdownAmount[];
export declare const FeesBreakdownAmountList: S.$Array<S.Schema<FeesBreakdownAmount>>;
export interface FeesBreakdown {
    Breakdown?: FeesBreakdownAmount[];
    TotalAmount?: string;
}
export declare const FeesBreakdown: S.Schema<FeesBreakdown>;
export interface AmountBreakdown {
    SubTotalAmount?: string;
    Discounts?: DiscountsBreakdown;
    Taxes?: TaxesBreakdown;
    Fees?: FeesBreakdown;
}
export declare const AmountBreakdown: S.Schema<AmountBreakdown>;
export interface CurrencyExchangeDetails {
    SourceCurrencyCode?: string;
    TargetCurrencyCode?: string;
    Rate?: string;
}
export declare const CurrencyExchangeDetails: S.Schema<CurrencyExchangeDetails>;
export interface InvoiceCurrencyAmount {
    TotalAmount?: string;
    TotalAmountBeforeTax?: string;
    CurrencyCode?: string;
    AmountBreakdown?: AmountBreakdown;
    CurrencyExchangeDetails?: CurrencyExchangeDetails;
}
export declare const InvoiceCurrencyAmount: S.Schema<InvoiceCurrencyAmount>;
export interface InvoiceSummary {
    AccountId?: string;
    InvoiceId?: string;
    IssuedDate?: Date;
    DueDate?: Date;
    Entity?: Entity;
    BillingPeriod?: BillingPeriod;
    InvoiceType?: InvoiceType;
    OriginalInvoiceId?: string;
    PurchaseOrderNumber?: string;
    BaseCurrencyAmount?: InvoiceCurrencyAmount;
    TaxCurrencyAmount?: InvoiceCurrencyAmount;
    PaymentCurrencyAmount?: InvoiceCurrencyAmount;
}
export declare const InvoiceSummary: S.Schema<InvoiceSummary>;
export type InvoiceSummaries = InvoiceSummary[];
export declare const InvoiceSummaries: S.$Array<S.Schema<InvoiceSummary>>;
export interface ListInvoiceSummariesResponse {
    InvoiceSummaries: InvoiceSummary[];
    NextToken?: string;
}
export declare const ListInvoiceSummariesResponse: S.Schema<ListInvoiceSummariesResponse>;
export type InvoiceUnitNames = string[];
export declare const InvoiceUnitNames: S.$Array<S.String>;
export interface Filters {
    Names?: string[];
    InvoiceReceivers?: string[];
    Accounts?: string[];
    BillSourceAccounts?: string[];
}
export declare const Filters: S.Schema<Filters>;
export interface ListInvoiceUnitsRequest {
    Filters?: Filters;
    NextToken?: string;
    MaxResults?: number;
    AsOf?: Date;
}
export declare const ListInvoiceUnitsRequest: S.Schema<ListInvoiceUnitsRequest>;
export interface InvoiceUnit {
    InvoiceUnitArn?: string;
    InvoiceReceiver?: string;
    Name?: string;
    Description?: string;
    TaxInheritanceDisabled?: boolean;
    Rule?: InvoiceUnitRule;
    LastModified?: Date;
}
export declare const InvoiceUnit: S.Schema<InvoiceUnit>;
export type InvoiceUnits = InvoiceUnit[];
export declare const InvoiceUnits: S.$Array<S.Schema<InvoiceUnit>>;
export interface ListInvoiceUnitsResponse {
    InvoiceUnits?: InvoiceUnit[];
    NextToken?: string;
}
export declare const ListInvoiceUnitsResponse: S.Schema<ListInvoiceUnitsResponse>;
export interface ListProcurementPortalPreferencesRequest {
    NextToken?: string;
    MaxResults?: number;
}
export declare const ListProcurementPortalPreferencesRequest: S.Schema<ListProcurementPortalPreferencesRequest>;
export interface ProcurementPortalPreferenceSummary {
    AwsAccountId: string;
    ProcurementPortalPreferenceArn: string;
    ProcurementPortalName: ProcurementPortalName;
    BuyerDomain: BuyerDomain;
    BuyerIdentifier: string;
    SupplierDomain: SupplierDomain;
    SupplierIdentifier: string;
    Selector?: ProcurementPortalPreferenceSelector;
    EinvoiceDeliveryEnabled: boolean;
    PurchaseOrderRetrievalEnabled: boolean;
    EinvoiceDeliveryPreferenceStatus?: ProcurementPortalPreferenceStatus;
    EinvoiceDeliveryPreferenceStatusReason?: string;
    PurchaseOrderRetrievalPreferenceStatus?: ProcurementPortalPreferenceStatus;
    PurchaseOrderRetrievalPreferenceStatusReason?: string;
    Version: number;
    CreateDate: Date;
    LastUpdateDate: Date;
}
export declare const ProcurementPortalPreferenceSummary: S.Schema<ProcurementPortalPreferenceSummary>;
export type ProcurementPortalPreferenceSummaries = ProcurementPortalPreferenceSummary[];
export declare const ProcurementPortalPreferenceSummaries: S.$Array<S.Schema<ProcurementPortalPreferenceSummary>>;
export interface ListProcurementPortalPreferencesResponse {
    ProcurementPortalPreferences?: ProcurementPortalPreferenceSummary[];
    NextToken?: string;
}
export declare const ListProcurementPortalPreferencesResponse: S.Schema<ListProcurementPortalPreferencesResponse>;
export interface ListTagsForResourceRequest {
    ResourceArn: string;
}
export declare const ListTagsForResourceRequest: S.Schema<ListTagsForResourceRequest>;
export interface ListTagsForResourceResponse {
    ResourceTags?: ResourceTag[];
}
export declare const ListTagsForResourceResponse: S.Schema<ListTagsForResourceResponse>;
export interface PutProcurementPortalPreferenceRequest {
    ProcurementPortalPreferenceArn: string;
    Selector?: ProcurementPortalPreferenceSelector;
    ProcurementPortalSharedSecret?: string | redacted.Redacted<string>;
    ProcurementPortalInstanceEndpoint?: string;
    TestEnvPreference?: TestEnvPreferenceInput;
    EinvoiceDeliveryEnabled: boolean;
    EinvoiceDeliveryPreference?: EinvoiceDeliveryPreference;
    PurchaseOrderRetrievalEnabled: boolean;
    Contacts: Contact[];
}
export declare const PutProcurementPortalPreferenceRequest: S.Schema<PutProcurementPortalPreferenceRequest>;
export interface PutProcurementPortalPreferenceResponse {
    ProcurementPortalPreferenceArn: string;
}
export declare const PutProcurementPortalPreferenceResponse: S.Schema<PutProcurementPortalPreferenceResponse>;
export interface TagResourceRequest {
    ResourceArn: string;
    ResourceTags: ResourceTag[];
}
export declare const TagResourceRequest: S.Schema<TagResourceRequest>;
export interface TagResourceResponse {
}
export declare const TagResourceResponse: S.Schema<TagResourceResponse>;
export type ResourceTagKeyList = string[];
export declare const ResourceTagKeyList: S.$Array<S.String>;
export interface UntagResourceRequest {
    ResourceArn: string;
    ResourceTagKeys: string[];
}
export declare const UntagResourceRequest: S.Schema<UntagResourceRequest>;
export interface UntagResourceResponse {
}
export declare const UntagResourceResponse: S.Schema<UntagResourceResponse>;
export interface UpdateInvoiceUnitRequest {
    InvoiceUnitArn: string;
    Description?: string;
    TaxInheritanceDisabled?: boolean;
    Rule?: InvoiceUnitRule;
}
export declare const UpdateInvoiceUnitRequest: S.Schema<UpdateInvoiceUnitRequest>;
export interface UpdateInvoiceUnitResponse {
    InvoiceUnitArn?: string;
}
export declare const UpdateInvoiceUnitResponse: S.Schema<UpdateInvoiceUnitResponse>;
export interface UpdateProcurementPortalPreferenceStatusRequest {
    ProcurementPortalPreferenceArn: string;
    EinvoiceDeliveryPreferenceStatus?: ProcurementPortalPreferenceStatus;
    EinvoiceDeliveryPreferenceStatusReason?: string;
    PurchaseOrderRetrievalPreferenceStatus?: ProcurementPortalPreferenceStatus;
    PurchaseOrderRetrievalPreferenceStatusReason?: string;
}
export declare const UpdateProcurementPortalPreferenceStatusRequest: S.Schema<UpdateProcurementPortalPreferenceStatusRequest>;
export interface UpdateProcurementPortalPreferenceStatusResponse {
    ProcurementPortalPreferenceArn: string;
}
export declare const UpdateProcurementPortalPreferenceStatusResponse: S.Schema<UpdateProcurementPortalPreferenceStatusResponse>;
declare const AccessDeniedException_base: S.Class<AccessDeniedException, S.TaggedStruct<"AccessDeniedException", {
    readonly message: S.optional<S.String>;
    readonly resourceName: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        AuthError: true;
    };
});
export declare class AccessDeniedException extends AccessDeniedException_base {
}
declare const InternalServerException_base: S.Class<InternalServerException, S.TaggedStruct<"InternalServerException", {
    readonly retryAfterSeconds: S.optional<S.Number>;
    readonly message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ServerError: true;
    };
});
export declare class InternalServerException extends InternalServerException_base {
}
declare const ResourceNotFoundException_base: S.Class<ResourceNotFoundException, S.TaggedStruct<"ResourceNotFoundException", {
    readonly message: S.optional<S.String>;
    readonly resourceName: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        BadRequestError: true;
    };
});
export declare class ResourceNotFoundException extends ResourceNotFoundException_base {
}
declare const ThrottlingException_base: S.Class<ThrottlingException, S.TaggedStruct<"ThrottlingException", {
    readonly message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ThrottlingError: true;
    };
});
export declare class ThrottlingException extends ThrottlingException_base {
}
declare const ValidationException_base: S.Class<ValidationException, S.TaggedStruct<"ValidationException", {
    readonly message: S.optional<S.String>;
    readonly resourceName: S.optional<S.String>;
    readonly reason: S.optional<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 ConflictException_base: S.Class<ConflictException, S.TaggedStruct<"ConflictException", {
    readonly message: S.optional<S.String>;
    readonly resourceId: S.optional<S.String>;
    readonly resourceType: S.optional<S.String>;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        ConflictError: true;
    };
});
export declare class ConflictException extends ConflictException_base {
}
declare const ServiceQuotaExceededException_base: S.Class<ServiceQuotaExceededException, S.TaggedStruct<"ServiceQuotaExceededException", {
    readonly message: S.String;
}>, import("effect/Cause").YieldableError> & (new (...args: any[]) => {
    "@distilled.cloud/error/categories": {
        QuotaError: true;
    };
});
export declare class ServiceQuotaExceededException extends ServiceQuotaExceededException_base {
}
export type BatchGetInvoiceProfileError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * This gets the invoice profile associated with a set of accounts. The accounts must be linked accounts under the requester management account organization.
 */
export declare const batchGetInvoiceProfile: API.OperationMethod<BatchGetInvoiceProfileRequest, BatchGetInvoiceProfileResponse, BatchGetInvoiceProfileError, Credentials | Region | HttpClient.HttpClient>;
export type CreateInvoiceUnitError = AccessDeniedException | InternalServerException | ThrottlingException | ValidationException | CommonErrors;
/**
 * This creates a new invoice unit with the provided definition.
 */
export declare const createInvoiceUnit: API.OperationMethod<CreateInvoiceUnitRequest, CreateInvoiceUnitResponse, CreateInvoiceUnitError, Credentials | Region | HttpClient.HttpClient>;
export type CreateProcurementPortalPreferenceError = AccessDeniedException | ConflictException | InternalServerException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Creates a procurement portal preference configuration for e-invoice delivery and purchase order retrieval. This preference defines how invoices are delivered to a procurement portal and how purchase orders are retrieved.
 */
export declare const createProcurementPortalPreference: API.OperationMethod<CreateProcurementPortalPreferenceRequest, CreateProcurementPortalPreferenceResponse, CreateProcurementPortalPreferenceError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteInvoiceUnitError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * This deletes an invoice unit with the provided invoice unit ARN.
 */
export declare const deleteInvoiceUnit: API.OperationMethod<DeleteInvoiceUnitRequest, DeleteInvoiceUnitResponse, DeleteInvoiceUnitError, Credentials | Region | HttpClient.HttpClient>;
export type DeleteProcurementPortalPreferenceError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Deletes an existing procurement portal preference. This action cannot be undone. Active e-invoice delivery and PO retrieval configurations will be terminated.
 */
export declare const deleteProcurementPortalPreference: API.OperationMethod<DeleteProcurementPortalPreferenceRequest, DeleteProcurementPortalPreferenceResponse, DeleteProcurementPortalPreferenceError, Credentials | Region | HttpClient.HttpClient>;
export type GetInvoicePDFError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Returns a URL to download the invoice document and supplemental documents associated with an invoice. The URLs are pre-signed and have expiration time. For special cases like Brazil, where Amazon Web Services generated invoice identifiers and government provided identifiers do not match, use the Amazon Web Services generated invoice identifier when making API requests. To grant IAM permission to use this operation, the caller needs the `invoicing:GetInvoicePDF` policy action.
 */
export declare const getInvoicePDF: API.OperationMethod<GetInvoicePDFRequest, GetInvoicePDFResponse, GetInvoicePDFError, Credentials | Region | HttpClient.HttpClient>;
export type GetInvoiceUnitError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * This retrieves the invoice unit definition.
 */
export declare const getInvoiceUnit: API.OperationMethod<GetInvoiceUnitRequest, GetInvoiceUnitResponse, GetInvoiceUnitError, Credentials | Region | HttpClient.HttpClient>;
export type GetProcurementPortalPreferenceError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Retrieves the details of a specific procurement portal preference configuration.
 */
export declare const getProcurementPortalPreference: API.OperationMethod<GetProcurementPortalPreferenceRequest, GetProcurementPortalPreferenceResponse, GetProcurementPortalPreferenceError, Credentials | Region | HttpClient.HttpClient>;
export type ListInvoiceSummariesError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Retrieves your invoice details programmatically, without line item details.
 */
export declare const listInvoiceSummaries: API.OperationMethod<ListInvoiceSummariesRequest, ListInvoiceSummariesResponse, ListInvoiceSummariesError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListInvoiceSummariesRequest) => stream.Stream<ListInvoiceSummariesResponse, ListInvoiceSummariesError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListInvoiceSummariesRequest) => stream.Stream<InvoiceSummary, ListInvoiceSummariesError, Credentials | Region | HttpClient.HttpClient>;
};
export type ListInvoiceUnitsError = AccessDeniedException | InternalServerException | ThrottlingException | ValidationException | CommonErrors;
/**
 * This fetches a list of all invoice unit definitions for a given account, as of the provided `AsOf` date.
 */
export declare const listInvoiceUnits: API.OperationMethod<ListInvoiceUnitsRequest, ListInvoiceUnitsResponse, ListInvoiceUnitsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListInvoiceUnitsRequest) => stream.Stream<ListInvoiceUnitsResponse, ListInvoiceUnitsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListInvoiceUnitsRequest) => stream.Stream<InvoiceUnit, ListInvoiceUnitsError, Credentials | Region | HttpClient.HttpClient>;
};
export type ListProcurementPortalPreferencesError = AccessDeniedException | ConflictException | InternalServerException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Retrieves a list of procurement portal preferences associated with the Amazon Web Services account.
 */
export declare const listProcurementPortalPreferences: API.OperationMethod<ListProcurementPortalPreferencesRequest, ListProcurementPortalPreferencesResponse, ListProcurementPortalPreferencesError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: ListProcurementPortalPreferencesRequest) => stream.Stream<ListProcurementPortalPreferencesResponse, ListProcurementPortalPreferencesError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: ListProcurementPortalPreferencesRequest) => stream.Stream<ProcurementPortalPreferenceSummary, ListProcurementPortalPreferencesError, Credentials | Region | HttpClient.HttpClient>;
};
export type ListTagsForResourceError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Lists the tags for a resource.
 */
export declare const listTagsForResource: API.OperationMethod<ListTagsForResourceRequest, ListTagsForResourceResponse, ListTagsForResourceError, Credentials | Region | HttpClient.HttpClient>;
export type PutProcurementPortalPreferenceError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Updates an existing procurement portal preference configuration. This operation can modify settings for e-invoice delivery and purchase order retrieval.
 */
export declare const putProcurementPortalPreference: API.OperationMethod<PutProcurementPortalPreferenceRequest, PutProcurementPortalPreferenceResponse, PutProcurementPortalPreferenceError, Credentials | Region | HttpClient.HttpClient>;
export type TagResourceError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Adds a tag to a resource.
 */
export declare const tagResource: API.OperationMethod<TagResourceRequest, TagResourceResponse, TagResourceError, Credentials | Region | HttpClient.HttpClient>;
export type UntagResourceError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Removes a tag from a resource.
 */
export declare const untagResource: API.OperationMethod<UntagResourceRequest, UntagResourceResponse, UntagResourceError, Credentials | Region | HttpClient.HttpClient>;
export type UpdateInvoiceUnitError = AccessDeniedException | InternalServerException | ResourceNotFoundException | ThrottlingException | ValidationException | CommonErrors;
/**
 * You can update the invoice unit configuration at any time, and Amazon Web Services will use the latest configuration at the end of the month.
 */
export declare const updateInvoiceUnit: API.OperationMethod<UpdateInvoiceUnitRequest, UpdateInvoiceUnitResponse, UpdateInvoiceUnitError, Credentials | Region | HttpClient.HttpClient>;
export type UpdateProcurementPortalPreferenceStatusError = AccessDeniedException | ConflictException | InternalServerException | ResourceNotFoundException | ServiceQuotaExceededException | ThrottlingException | ValidationException | CommonErrors;
/**
 * Updates the status of a procurement portal preference, including the activation state of e-invoice delivery and purchase order retrieval features.
 */
export declare const updateProcurementPortalPreferenceStatus: API.OperationMethod<UpdateProcurementPortalPreferenceStatusRequest, UpdateProcurementPortalPreferenceStatusResponse, UpdateProcurementPortalPreferenceStatusError, Credentials | Region | HttpClient.HttpClient>;
export {};
//# sourceMappingURL=invoicing.d.ts.map