export interface InvoiceUnitRule {
    /** The list of LINKED_ACCOUNT IDs where charges are included within the invoice unit. */
    LinkedAccounts?: string[];
    /** A list of Amazon Web Services account account IDs that have delegated their billing responsibility to the receiver account through transfer billing. Unlike linked accounts, these bill source accounts  */
    BillSourceAccounts?: string[];
}
export interface ResourceTag {
    /** The object key of your of your resource tag. */
    Key: string;
    /** The specific value of the resource tag. */
    Value: string;
}
export interface ProcurementPortalPreferenceSelector {
    /** The Amazon Resource Name (ARN) of invoice unit identifiers to which this preference applies. */
    InvoiceUnitArns?: string[];
    /** The list of seller of record IDs to which this preference applies. */
    SellerOfRecords?: string[];
}
export interface TestEnvPreferenceInput {
    /** The domain identifier to use for the buyer in the test environment. */
    BuyerDomain: 'NetworkID';
    /** The unique identifier to use for the buyer in the test environment. */
    BuyerIdentifier: string;
    /** The domain identifier to use for the supplier in the test environment. */
    SupplierDomain: 'NetworkID';
    /** The unique identifier to use for the supplier in the test environment. */
    SupplierIdentifier: string;
    /** The shared secret or authentication credential to use for secure communication in the test environment. */
    ProcurementPortalSharedSecret?: string;
    /** The endpoint URL where e-invoices will be delivered in the test environment. */
    ProcurementPortalInstanceEndpoint?: string;
}
export interface EinvoiceDeliveryPreference {
    /** The types of e-invoice documents to be delivered. */
    EinvoiceDeliveryDocumentTypes: 'AWS_CLOUD_INVOICE' | 'AWS_CLOUD_CREDIT_MEMO' | 'AWS_MARKETPLACE_INVOICE' | 'AWS_MARKETPLACE_CREDIT_MEMO' | 'AWS_REQUEST_FOR_PAYMENT'[];
    /** The types of attachments to include with the e-invoice delivery. */
    EinvoiceDeliveryAttachmentTypes?: 'INVOICE_PDF' | 'RFP_PDF'[];
    /** The communication protocol to use for e-invoice delivery. */
    Protocol: 'CXML';
    /** The sources of purchase order data to use for e-invoice generation and delivery. */
    PurchaseOrderDataSources: any[];
    /** The method to use for testing the connection to the procurement portal. */
    ConnectionTestingMethod: 'PROD_ENV_DOLLAR_TEST' | 'TEST_ENV_REPLAY_TEST';
    /** The date when e-invoice delivery should be activated for this preference. */
    EinvoiceDeliveryActivationDate: string;
}
export interface Contact {
    /** The name of the contact person or role. */
    Name?: string;
    /** The email address of the contact person or role. */
    Email?: string;
}
export interface InvoiceSummariesSelector {
    /** The query identifier type (INVOICE_ID or ACCOUNT_ID). */
    ResourceType: 'ACCOUNT_ID' | 'INVOICE_ID';
    /** The value of the query identifier. */
    Value: string;
}
export interface DateInterval {
    /** The beginning of the time period that you want invoice-related documents for. The start date is inclusive. For example, if start is 2019-01-01, AWS retrieves invoices starting at 2019-01-01 up to the  */
    StartDate: string;
    /** The end of the time period that you want invoice-related documents for. The end date is exclusive. For example, if end is 2019-01-10, Amazon Web Services retrieves invoice-related documents from the s */
    EndDate: string;
}
export interface BillingPeriod {
    /** The billing period month. */
    Month: number;
    /** The billing period year. */
    Year: number;
}
export interface InvoiceSummariesFilter {
    /** The date range for invoice summary retrieval. */
    TimeInterval?: DateInterval;
    /** The billing period associated with the invoice documents. */
    BillingPeriod?: BillingPeriod;
    /** The name of the entity that issues the Amazon Web Services invoice. */
    InvoicingEntity?: string;
}
export interface Filters {
    /** An optional input to the list API. You can specify a list of invoice unit names inside filters to return invoice units that match only the specified invoice unit names. If multiple names are provided, */
    Names?: string[];
    /** You can specify a list of Amazon Web Services account IDs inside filters to return invoice units that match only the specified accounts. If multiple accounts are provided, the result is an OR conditio */
    InvoiceReceivers?: string[];
    /** You can specify a list of Amazon Web Services account IDs inside filters to return invoice units that match only the specified accounts. If multiple accounts are provided, the result is an OR conditio */
    Accounts?: string[];
    /** A list of Amazon Web Services account account IDs used to filter invoice units. These are payer accounts from other Organizations that have delegated their billing responsibility to the receiver accou */
    BillSourceAccounts?: string[];
}
export interface BatchGetInvoiceProfileInput {
    /** Retrieves the corresponding invoice profile data for these account IDs. */
    AccountIds: string[];
}
export interface CreateInvoiceUnitInput {
    /** The Amazon Web Services account ID chosen to be the receiver of an invoice unit. All invoices generated for that invoice unit will be sent to this account ID. */
    InvoiceReceiver: string;
    /** The unique name of the invoice unit that is shown on the generated invoice. This can't be changed once it is set. To change this name, you must delete the invoice unit recreate. */
    Name: string;
    /** The InvoiceUnitRule object used to create invoice units. */
    Rule: InvoiceUnitRule;
    /** The invoice unit's description. This can be changed at a later time. */
    Description?: string;
    /** The tag structure that contains a tag key and value. */
    ResourceTags?: ResourceTag[];
    /** Whether the invoice unit based tax inheritance is/ should be enabled or disabled. */
    TaxInheritanceDisabled?: boolean;
}
export interface CreateProcurementPortalPreferenceInput {
    /** The domain identifier for the buyer in the procurement portal. */
    BuyerDomain: 'NetworkID';
    /** The unique identifier for the buyer in the procurement portal. */
    BuyerIdentifier: string;
    /** List of contact information for portal administrators and technical contacts responsible for the e-invoice integration. */
    Contacts: Contact[];
    /** Indicates whether e-invoice delivery is enabled for this procurement portal preference. Set to true to enable e-invoice delivery, false to disable. */
    EinvoiceDeliveryEnabled: boolean;
    /** The name of the procurement portal. */
    ProcurementPortalName: 'SAP_BUSINESS_NETWORK' | 'COUPA';
    /** Indicates whether purchase order retrieval is enabled for this procurement portal preference. Set to true to enable PO retrieval, false to disable. */
    PurchaseOrderRetrievalEnabled: boolean;
    /** The domain identifier for the supplier in the procurement portal. */
    SupplierDomain: 'NetworkID';
    /** The unique identifier for the supplier in the procurement portal. */
    SupplierIdentifier: string;
    /** A unique, case-sensitive identifier that you provide to ensure idempotency of the request. */
    ClientToken?: string;
    /** Specifies the e-invoice delivery configuration including document types, attachment types, and customization settings for the portal. */
    EinvoiceDeliveryPreference?: EinvoiceDeliveryPreference;
    /** The endpoint URL where e-invoices will be delivered to the procurement portal. Must be a valid HTTPS URL. */
    ProcurementPortalInstanceEndpoint?: string;
    /** The shared secret or authentication credential used to establish secure communication with the procurement portal. This value must be encrypted at rest. */
    ProcurementPortalSharedSecret?: string;
    /** The tags to apply to this procurement portal preference resource. Each tag consists of a key and an optional value. */
    ResourceTags?: ResourceTag[];
    Selector?: ProcurementPortalPreferenceSelector;
    /** Configuration settings for the test environment of the procurement portal. Includes test credentials and endpoints that are used for validation before production deployment. */
    TestEnvPreference?: TestEnvPreferenceInput;
}
export interface DeleteInvoiceUnitInput {
    /** The ARN to identify an invoice unit. This information can't be modified or deleted. */
    InvoiceUnitArn: string;
}
export interface DeleteProcurementPortalPreferenceInput {
    /** The Amazon Resource Name (ARN) of the procurement portal preference to delete. */
    ProcurementPortalPreferenceArn: string;
}
export interface GetInvoicePDFInput {
    /** Your unique invoice ID. */
    InvoiceId: string;
}
export interface GetInvoiceUnitInput {
    /** The ARN to identify an invoice unit. This information can't be modified or deleted. */
    InvoiceUnitArn: string;
    /** The state of an invoice unit at a specified time. You can see legacy invoice units that are currently deleted if the AsOf time is set to before it was deleted. If an AsOf is not provided, the default  */
    AsOf?: string;
}
export interface GetProcurementPortalPreferenceInput {
    /** The Amazon Resource Name (ARN) of the procurement portal preference to retrieve. */
    ProcurementPortalPreferenceArn: string;
}
export interface ListInvoiceSummariesInput {
    /** The option to retrieve details for a specific invoice by providing its unique ID. Alternatively, access information for all invoices linked to the account by providing an account ID. */
    Selector: InvoiceSummariesSelector;
    /** Filters you can use to customize your invoice summary. */
    Filter?: InvoiceSummariesFilter;
    /** The maximum number of invoice summaries a paginated response can contain. */
    MaxResults?: number;
    /** The token to retrieve the next set of results. Amazon Web Services provides the token when the response from a previous call has more results than the maximum page size. */
    NextToken?: string;
}
export interface ListInvoiceUnitsInput {
    /** The state of an invoice unit at a specified time. You can see legacy invoice units that are currently deleted if the AsOf time is set to before it was deleted. If an AsOf is not provided, the default  */
    AsOf?: string;
    /** An optional input to the list API. If multiple filters are specified, the returned list will be a configuration that match all of the provided filters. Supported filter types are InvoiceReceivers, Nam */
    Filters?: Filters;
    /** The maximum number of invoice units that can be returned. */
    MaxResults?: number;
    /** The next token used to indicate where the returned list should start from. */
    NextToken?: string;
}
export interface ListProcurementPortalPreferencesInput {
    /** The maximum number of results to return in a single call. To retrieve the remaining results, make another call with the returned NextToken value. */
    MaxResults?: number;
    /** The token for the next set of results. (You received this token from a previous call.) */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of tags to list. */
    ResourceArn: string;
}
export interface PutProcurementPortalPreferenceInput {
    /** Updated list of contact information for portal administrators and technical contacts. */
    Contacts: Contact[];
    /** Updated flag indicating whether e-invoice delivery is enabled for this procurement portal preference. */
    EinvoiceDeliveryEnabled: boolean;
    /** The Amazon Resource Name (ARN) of the procurement portal preference to update. */
    ProcurementPortalPreferenceArn: string;
    /** Updated flag indicating whether purchase order retrieval is enabled for this procurement portal preference. */
    PurchaseOrderRetrievalEnabled: boolean;
    /** Updated e-invoice delivery configuration including document types, attachment types, and customization settings for the portal. */
    EinvoiceDeliveryPreference?: EinvoiceDeliveryPreference;
    /** The updated endpoint URL where e-invoices will be delivered to the procurement portal. Must be a valid HTTPS URL. */
    ProcurementPortalInstanceEndpoint?: string;
    /** The updated shared secret or authentication credential for the procurement portal. This value must be encrypted at rest. */
    ProcurementPortalSharedSecret?: string;
    Selector?: ProcurementPortalPreferenceSelector;
    /** Updated configuration settings for the test environment of the procurement portal. */
    TestEnvPreference?: TestEnvPreferenceInput;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the tags. */
    ResourceArn: string;
    /** Adds a tag to a resource. */
    ResourceTags: ResourceTag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) to untag. */
    ResourceArn: string;
    /** Keys for the tags to be removed. */
    ResourceTagKeys: string[];
}
export interface UpdateInvoiceUnitInput {
    /** The ARN to identify an invoice unit. This information can't be modified or deleted. */
    InvoiceUnitArn: string;
    /** The assigned description for an invoice unit. This information can't be modified or deleted. */
    Description?: string;
    /** The InvoiceUnitRule object used to update invoice units. */
    Rule?: InvoiceUnitRule;
    /** Whether the invoice unit based tax inheritance is/ should be enabled or disabled. */
    TaxInheritanceDisabled?: boolean;
}
export interface UpdateProcurementPortalPreferenceStatusInput {
    /** The Amazon Resource Name (ARN) of the procurement portal preference to update. */
    ProcurementPortalPreferenceArn: string;
    /** The updated status of the e-invoice delivery preference. */
    EinvoiceDeliveryPreferenceStatus?: 'PENDING_VERIFICATION' | 'TEST_INITIALIZED' | 'TEST_INITIALIZATION_FAILED' | 'TEST_FAILED' | 'ACTIVE' | 'SUSPENDED';
    /** The reason for the e-invoice delivery preference status update, providing context for the change. */
    EinvoiceDeliveryPreferenceStatusReason?: string;
    /** The updated status of the purchase order retrieval preference. */
    PurchaseOrderRetrievalPreferenceStatus?: 'PENDING_VERIFICATION' | 'TEST_INITIALIZED' | 'TEST_INITIALIZATION_FAILED' | 'TEST_FAILED' | 'ACTIVE' | 'SUSPENDED';
    /** The reason for the purchase order retrieval preference status update, providing context for the change. */
    PurchaseOrderRetrievalPreferenceStatusReason?: string;
}
/** Invoicing service binding for Step Functions SDK integrations. */
export declare class Invoicing {
    constructor();
    batchGetInvoiceProfile<T>(params: BatchGetInvoiceProfileInput): Promise<T>;
    createInvoiceUnit<T>(params: CreateInvoiceUnitInput): Promise<T>;
    createProcurementPortalPreference<T>(params: CreateProcurementPortalPreferenceInput): Promise<T>;
    deleteInvoiceUnit<T>(params: DeleteInvoiceUnitInput): Promise<T>;
    deleteProcurementPortalPreference<T>(params: DeleteProcurementPortalPreferenceInput): Promise<T>;
    getInvoicePDF<T>(params: GetInvoicePDFInput): Promise<T>;
    getInvoiceUnit<T>(params: GetInvoiceUnitInput): Promise<T>;
    getProcurementPortalPreference<T>(params: GetProcurementPortalPreferenceInput): Promise<T>;
    listInvoiceSummaries<T>(params: ListInvoiceSummariesInput): Promise<T>;
    listInvoiceUnits<T>(params: ListInvoiceUnitsInput): Promise<T>;
    listProcurementPortalPreferences<T>(params: ListProcurementPortalPreferencesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putProcurementPortalPreference<T>(params: PutProcurementPortalPreferenceInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateInvoiceUnit<T>(params: UpdateInvoiceUnitInput): Promise<T>;
    updateProcurementPortalPreferenceStatus<T>(params: UpdateProcurementPortalPreferenceStatusInput): Promise<T>;
}
//# sourceMappingURL=Invoicing.d.ts.map