/**
 * Octane API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import * as runtime from '../runtime';
import { AccountingCustomer, AccruedRevenue, ActiveSubscription, BillingSettings, CreateCreditTopOffPlanInputArgs, CreateCustomerArgs, CreateSubscriptionArgs, CreditTopOffPlan, Customer, CustomerAvalaraSettings, CustomerBillingSettingsInputArgs, CustomerFeature, CustomerMeasurementMapping, CustomerMeasurementMappingInputArgs, CustomerMetadata, CustomerMetadataInput, CustomerPaymentGatewayCredentialInputArgs, CustomerPaymentMethodStatus, CustomerSpendThreshold, CustomerSpendThresholdInputArgs, CustomerStatus, CustomerUsage, DailyAccruedRevenue, DeleteDiscountInputArgs, DeleteSubscriptionArgs, DiscountInputArgs, Invoice, PaymentGatewayCredential, RevenueBreakdown, RevenueResponse, Subscription, SubscriptionAddOnItem, UpdateCreditTopOffPlanInputArgs, UpdateCustomerArgs, UpdateCustomerAvalaraSettingsArgs, UpdateSubscriptionArgs, UpdateSubscriptionInPlaceArgs, ValidateAddressResp } from '../models';
export interface CustomersCustomerNameAccountingDeleteRequest {
    customerName: string;
}
export interface CustomersCustomerNameAccountingGenerationPostRequest {
    customerName: string;
}
export interface CustomersCustomerNameAccountingGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameAccountingPostRequest {
    customerName: string;
    accountingCustomer: AccountingCustomer;
}
export interface CustomersCustomerNameAccruedRevenueGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameActiveSubscriptionGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameBillingSettingsDeleteRequest {
    customerName: string;
}
export interface CustomersCustomerNameBillingSettingsGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameBillingSettingsPostRequest {
    customerName: string;
    customerBillingSettingsInputArgs: CustomerBillingSettingsInputArgs;
}
export interface CustomersCustomerNameBillingSettingsPutRequest {
    customerName: string;
    customerBillingSettingsInputArgs: CustomerBillingSettingsInputArgs;
}
export interface CustomersCustomerNameCreditTopOffPlanDeleteRequest {
    customerName: string;
}
export interface CustomersCustomerNameCreditTopOffPlanGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameCreditTopOffPlanPostRequest {
    customerName: string;
    createCreditTopOffPlanInputArgs: CreateCreditTopOffPlanInputArgs;
}
export interface CustomersCustomerNameCreditTopOffPlanPutRequest {
    customerName: string;
    updateCreditTopOffPlanInputArgs: UpdateCreditTopOffPlanInputArgs;
}
export interface CustomersCustomerNameDailyAccruedRevenueGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameDeleteRequest {
    customerName: string;
}
export interface CustomersCustomerNameDiscountsDeleteRequest {
    customerName: string;
    deleteDiscountInputArgs: DeleteDiscountInputArgs;
}
export interface CustomersCustomerNameDiscountsPostRequest {
    customerName: string;
    discountInputArgs: Array<DiscountInputArgs>;
}
export interface CustomersCustomerNameFeaturesFeatureNameGetRequest {
    customerName: string;
    featureName: string;
}
export interface CustomersCustomerNameGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameIntegrationTaxAvalaraAddressValidGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameIntegrationTaxAvalaraSettingsGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameIntegrationTaxAvalaraSettingsPutRequest {
    customerName: string;
    updateCustomerAvalaraSettingsArgs: UpdateCustomerAvalaraSettingsArgs;
}
export interface CustomersCustomerNameInvoiceInvoiceIdTokenGetRequest {
    customerName: string;
    invoiceId: number;
    token: string;
}
export interface CustomersCustomerNameInvoicesGetRequest {
    customerName: string;
    startTime?: Date;
    sortDirection?: string;
    forwardSecondarySortOffset?: string;
    limit?: number;
    forwardSortOffset?: string;
    status?: string;
    customerName2?: string;
    sortColumn?: string;
}
export interface CustomersCustomerNameMappingsGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameMappingsPostRequest {
    customerName: string;
    customerMeasurementMappingInputArgs: CustomerMeasurementMappingInputArgs;
}
export interface CustomersCustomerNameMetadataGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameMetadataPostRequest {
    customerName: string;
    customerMetadataInput: Array<CustomerMetadataInput>;
}
export interface CustomersCustomerNamePaymentGatewayCredentialsGetRequest {
    customerName: string;
}
export interface CustomersCustomerNamePaymentGatewayCredentialsPostRequest {
    customerName: string;
    customerPaymentGatewayCredentialInputArgs: CustomerPaymentGatewayCredentialInputArgs;
}
export interface CustomersCustomerNamePaymentMethodStatusGetRequest {
    customerName: string;
}
export interface CustomersCustomerNamePutRequest {
    customerName: string;
    updateCustomerArgs: UpdateCustomerArgs;
}
export interface CustomersCustomerNameRevenueGetRequest {
    customerName: string;
    startTime?: Date;
    endTime?: Date;
}
export interface CustomersCustomerNameSampleInvoiceAsOfStrTokenGetRequest {
    asOfStr: string;
    customerName: string;
    token: string;
}
export interface CustomersCustomerNameSampleInvoiceTokenGetRequest {
    customerName: string;
    token: string;
}
export interface CustomersCustomerNameScheduledSubscriptionsGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameSpendThresholdDeleteRequest {
    customerName: string;
}
export interface CustomersCustomerNameSpendThresholdGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameSpendThresholdPostRequest {
    customerName: string;
    customerSpendThresholdInputArgs: CustomerSpendThresholdInputArgs;
}
export interface CustomersCustomerNameStatusGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameSubscriptionAddOnsPostRequest {
    customerName: string;
    subscriptionAddOnItem: Array<SubscriptionAddOnItem>;
}
export interface CustomersCustomerNameSubscriptionDeleteRequest {
    customerName: string;
    deleteSubscriptionArgs: DeleteSubscriptionArgs;
}
export interface CustomersCustomerNameSubscriptionPutRequest {
    customerName: string;
    updateSubscriptionArgs: UpdateSubscriptionArgs;
}
export interface CustomersCustomerNameSubscriptionUpdateInPlacePutRequest {
    customerName: string;
    updateSubscriptionInPlaceArgs: UpdateSubscriptionInPlaceArgs;
}
export interface CustomersCustomerNameSubscriptionsGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameSubscriptionsPostRequest {
    customerName: string;
    createSubscriptionArgs: CreateSubscriptionArgs;
}
export interface CustomersCustomerNameTotalAccruedRevenueGetRequest {
    customerName: string;
}
export interface CustomersCustomerNameUsageAcrossMetersTokenGetRequest {
    customerName: string;
    token: string;
    startTime: Date;
    endTime: Date;
}
export interface CustomersCustomerNameUsageGetRequest {
    customerName: string;
    meterName?: string;
    startTime?: Date;
    endTime?: Date;
}
export interface CustomersPostRequest {
    createCustomerArgs: CreateCustomerArgs;
}
/**
 *
 */
export declare class CustomersApi extends runtime.BaseAPI {
    /**
     * Deletes the customer entity tied to your accounting software.
     * Delete Accounting Customer
     */
    customersCustomerNameAccountingDeleteRaw(requestParameters: CustomersCustomerNameAccountingDeleteRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Deletes the customer entity tied to your accounting software.
     * Delete Accounting Customer
     */
    customersCustomerNameAccountingDelete(requestParameters: CustomersCustomerNameAccountingDeleteRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Create the customer entity tied to your accounting software.
     * Create Accounting Customer
     */
    customersCustomerNameAccountingGenerationPostRaw(requestParameters: CustomersCustomerNameAccountingGenerationPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Create the customer entity tied to your accounting software.
     * Create Accounting Customer
     */
    customersCustomerNameAccountingGenerationPost(requestParameters: CustomersCustomerNameAccountingGenerationPostRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Get the accounting customer ID of a customer that has been connected via an accounting integration.
     * Get Accounting Customer ID
     */
    customersCustomerNameAccountingGetRaw(requestParameters: CustomersCustomerNameAccountingGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<AccountingCustomer>>;
    /**
     * Get the accounting customer ID of a customer that has been connected via an accounting integration.
     * Get Accounting Customer ID
     */
    customersCustomerNameAccountingGet(requestParameters: CustomersCustomerNameAccountingGetRequest, initOverrides?: RequestInit): Promise<AccountingCustomer>;
    /**
     * Connect an Octane customer to an Accounting customer through the configured Accounting integration. The vendor must have an integration configured.
     * Connect Accounting Customer
     */
    customersCustomerNameAccountingPostRaw(requestParameters: CustomersCustomerNameAccountingPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Connect an Octane customer to an Accounting customer through the configured Accounting integration. The vendor must have an integration configured.
     * Connect Accounting Customer
     */
    customersCustomerNameAccountingPost(requestParameters: CustomersCustomerNameAccountingPostRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * DEPRECATED - please use /total_accrued_revenue instead
     */
    customersCustomerNameAccruedRevenueGetRaw(requestParameters: CustomersCustomerNameAccruedRevenueGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<RevenueBreakdown>>;
    /**
     * DEPRECATED - please use /total_accrued_revenue instead
     */
    customersCustomerNameAccruedRevenueGet(requestParameters: CustomersCustomerNameAccruedRevenueGetRequest, initOverrides?: RequestInit): Promise<RevenueBreakdown>;
    /**
     * Get the customer\'s current active subscription.
     * Get Active Subscription
     */
    customersCustomerNameActiveSubscriptionGetRaw(requestParameters: CustomersCustomerNameActiveSubscriptionGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<ActiveSubscription>>;
    /**
     * Get the customer\'s current active subscription.
     * Get Active Subscription
     */
    customersCustomerNameActiveSubscriptionGet(requestParameters: CustomersCustomerNameActiveSubscriptionGetRequest, initOverrides?: RequestInit): Promise<ActiveSubscription>;
    /**
     * Delete billing settings for a customer.
     * Delete Billing Settings
     */
    customersCustomerNameBillingSettingsDeleteRaw(requestParameters: CustomersCustomerNameBillingSettingsDeleteRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Delete billing settings for a customer.
     * Delete Billing Settings
     */
    customersCustomerNameBillingSettingsDelete(requestParameters: CustomersCustomerNameBillingSettingsDeleteRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Fetch the billing settings for a customer.
     * Get Billing Settings
     */
    customersCustomerNameBillingSettingsGetRaw(requestParameters: CustomersCustomerNameBillingSettingsGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<BillingSettings>>;
    /**
     * Fetch the billing settings for a customer.
     * Get Billing Settings
     */
    customersCustomerNameBillingSettingsGet(requestParameters: CustomersCustomerNameBillingSettingsGetRequest, initOverrides?: RequestInit): Promise<BillingSettings>;
    /**
     * Create billing settings for a customer.
     * Create Billing Settings
     */
    customersCustomerNameBillingSettingsPostRaw(requestParameters: CustomersCustomerNameBillingSettingsPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<BillingSettings>>;
    /**
     * Create billing settings for a customer.
     * Create Billing Settings
     */
    customersCustomerNameBillingSettingsPost(requestParameters: CustomersCustomerNameBillingSettingsPostRequest, initOverrides?: RequestInit): Promise<BillingSettings>;
    /**
     * Update billing settings for a customer.
     * Update Billing Settings
     */
    customersCustomerNameBillingSettingsPutRaw(requestParameters: CustomersCustomerNameBillingSettingsPutRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<BillingSettings>>;
    /**
     * Update billing settings for a customer.
     * Update Billing Settings
     */
    customersCustomerNameBillingSettingsPut(requestParameters: CustomersCustomerNameBillingSettingsPutRequest, initOverrides?: RequestInit): Promise<BillingSettings>;
    /**
     * Delete a customer\'s credit top off plan.
     * Delete Customer\'s Credit Top Off Plan
     */
    customersCustomerNameCreditTopOffPlanDeleteRaw(requestParameters: CustomersCustomerNameCreditTopOffPlanDeleteRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Delete a customer\'s credit top off plan.
     * Delete Customer\'s Credit Top Off Plan
     */
    customersCustomerNameCreditTopOffPlanDelete(requestParameters: CustomersCustomerNameCreditTopOffPlanDeleteRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Get a customer\'s credit top off plan.
     * Get Customer\'s Credit Top Off Plan
     */
    customersCustomerNameCreditTopOffPlanGetRaw(requestParameters: CustomersCustomerNameCreditTopOffPlanGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<CreditTopOffPlan>>;
    /**
     * Get a customer\'s credit top off plan.
     * Get Customer\'s Credit Top Off Plan
     */
    customersCustomerNameCreditTopOffPlanGet(requestParameters: CustomersCustomerNameCreditTopOffPlanGetRequest, initOverrides?: RequestInit): Promise<CreditTopOffPlan>;
    /**
     * Create a credit top off plan for a customer.
     * Create Customer\'s Credit Top Off Plan
     */
    customersCustomerNameCreditTopOffPlanPostRaw(requestParameters: CustomersCustomerNameCreditTopOffPlanPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<CreditTopOffPlan>>;
    /**
     * Create a credit top off plan for a customer.
     * Create Customer\'s Credit Top Off Plan
     */
    customersCustomerNameCreditTopOffPlanPost(requestParameters: CustomersCustomerNameCreditTopOffPlanPostRequest, initOverrides?: RequestInit): Promise<CreditTopOffPlan>;
    /**
     * Update a customer\'s current credit top off plan.
     * Update Customer\'s Credit Top Off Plan
     */
    customersCustomerNameCreditTopOffPlanPutRaw(requestParameters: CustomersCustomerNameCreditTopOffPlanPutRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<CreditTopOffPlan>>;
    /**
     * Update a customer\'s current credit top off plan.
     * Update Customer\'s Credit Top Off Plan
     */
    customersCustomerNameCreditTopOffPlanPut(requestParameters: CustomersCustomerNameCreditTopOffPlanPutRequest, initOverrides?: RequestInit): Promise<CreditTopOffPlan>;
    /**
     * Gets the daily accrued revenue for a customer broken down by line item until the beginning of the current hour.
     * Get Daily Accrued Revenue
     */
    customersCustomerNameDailyAccruedRevenueGetRaw(requestParameters: CustomersCustomerNameDailyAccruedRevenueGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<DailyAccruedRevenue>>>;
    /**
     * Gets the daily accrued revenue for a customer broken down by line item until the beginning of the current hour.
     * Get Daily Accrued Revenue
     */
    customersCustomerNameDailyAccruedRevenueGet(requestParameters: CustomersCustomerNameDailyAccruedRevenueGetRequest, initOverrides?: RequestInit): Promise<Array<DailyAccruedRevenue>>;
    /**
     * Delete a customer by their unique name.
     * Delete Customer
     */
    customersCustomerNameDeleteRaw(requestParameters: CustomersCustomerNameDeleteRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Delete a customer by their unique name.
     * Delete Customer
     */
    customersCustomerNameDelete(requestParameters: CustomersCustomerNameDeleteRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Delete a discount from the customer\'s current subscription. If the discount started before the start of the current billing cycle, we will expire it by setting it\'s end date to the start of the current billing cycle. Otherwise, we will delete the discount.
     * Delete Discount
     */
    customersCustomerNameDiscountsDeleteRaw(requestParameters: CustomersCustomerNameDiscountsDeleteRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Delete a discount from the customer\'s current subscription. If the discount started before the start of the current billing cycle, we will expire it by setting it\'s end date to the start of the current billing cycle. Otherwise, we will delete the discount.
     * Delete Discount
     */
    customersCustomerNameDiscountsDelete(requestParameters: CustomersCustomerNameDiscountsDeleteRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Add discounts to the list of discounts on the customer\'s current subscription. The new discounts will be effective_at of the start of the current billing cycle.
     * Add Discounts to a Subscription
     */
    customersCustomerNameDiscountsPostRaw(requestParameters: CustomersCustomerNameDiscountsPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Add discounts to the list of discounts on the customer\'s current subscription. The new discounts will be effective_at of the start of the current billing cycle.
     * Add Discounts to a Subscription
     */
    customersCustomerNameDiscountsPost(requestParameters: CustomersCustomerNameDiscountsPostRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Get the details of a feature for a given customer. The feature\'s status is determined by their subscription first, and by their price plan if no feature overrides are found on the subscription.
     * Get Feature Status
     */
    customersCustomerNameFeaturesFeatureNameGetRaw(requestParameters: CustomersCustomerNameFeaturesFeatureNameGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<CustomerFeature>>;
    /**
     * Get the details of a feature for a given customer. The feature\'s status is determined by their subscription first, and by their price plan if no feature overrides are found on the subscription.
     * Get Feature Status
     */
    customersCustomerNameFeaturesFeatureNameGet(requestParameters: CustomersCustomerNameFeaturesFeatureNameGetRequest, initOverrides?: RequestInit): Promise<CustomerFeature>;
    /**
     * Fetch a customer by their unique name.
     * Get Customer
     */
    customersCustomerNameGetRaw(requestParameters: CustomersCustomerNameGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Customer>>;
    /**
     * Fetch a customer by their unique name.
     * Get Customer
     */
    customersCustomerNameGet(requestParameters: CustomersCustomerNameGetRequest, initOverrides?: RequestInit): Promise<Customer>;
    /**
     * Validates to ensure that customer address is taxable via Avalara.
     * Validate customer address.
     */
    customersCustomerNameIntegrationTaxAvalaraAddressValidGetRaw(requestParameters: CustomersCustomerNameIntegrationTaxAvalaraAddressValidGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<ValidateAddressResp>>;
    /**
     * Validates to ensure that customer address is taxable via Avalara.
     * Validate customer address.
     */
    customersCustomerNameIntegrationTaxAvalaraAddressValidGet(requestParameters: CustomersCustomerNameIntegrationTaxAvalaraAddressValidGetRequest, initOverrides?: RequestInit): Promise<ValidateAddressResp>;
    /**
     * Returns the customer Avalara settings.
     * Get Customer Avalara Settings
     */
    customersCustomerNameIntegrationTaxAvalaraSettingsGetRaw(requestParameters: CustomersCustomerNameIntegrationTaxAvalaraSettingsGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<CustomerAvalaraSettings>>;
    /**
     * Returns the customer Avalara settings.
     * Get Customer Avalara Settings
     */
    customersCustomerNameIntegrationTaxAvalaraSettingsGet(requestParameters: CustomersCustomerNameIntegrationTaxAvalaraSettingsGetRequest, initOverrides?: RequestInit): Promise<CustomerAvalaraSettings>;
    /**
     * Updates the Avalara settings for a specific customer.
     * Update customer Avalara settings
     */
    customersCustomerNameIntegrationTaxAvalaraSettingsPutRaw(requestParameters: CustomersCustomerNameIntegrationTaxAvalaraSettingsPutRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<CustomerAvalaraSettings>>;
    /**
     * Updates the Avalara settings for a specific customer.
     * Update customer Avalara settings
     */
    customersCustomerNameIntegrationTaxAvalaraSettingsPut(requestParameters: CustomersCustomerNameIntegrationTaxAvalaraSettingsPutRequest, initOverrides?: RequestInit): Promise<CustomerAvalaraSettings>;
    /**
     * Fetch current cycle revenue for a customer and generate an invoice.
     * Generate Current Invoice
     */
    customersCustomerNameInvoiceInvoiceIdTokenGetRaw(requestParameters: CustomersCustomerNameInvoiceInvoiceIdTokenGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Error>>;
    /**
     * Fetch current cycle revenue for a customer and generate an invoice.
     * Generate Current Invoice
     */
    customersCustomerNameInvoiceInvoiceIdTokenGet(requestParameters: CustomersCustomerNameInvoiceInvoiceIdTokenGetRequest, initOverrides?: RequestInit): Promise<Error>;
    /**
     * Get a list of invoices and their line items for a customer.
     * Get Customer Invoices
     */
    customersCustomerNameInvoicesGetRaw(requestParameters: CustomersCustomerNameInvoicesGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<Invoice>>>;
    /**
     * Get a list of invoices and their line items for a customer.
     * Get Customer Invoices
     */
    customersCustomerNameInvoicesGet(requestParameters: CustomersCustomerNameInvoicesGetRequest, initOverrides?: RequestInit): Promise<Array<Invoice>>;
    /**
     * Fetch all measurement mappings for a specific customer (by unique customer name).
     * Get Measurement Mappings
     */
    customersCustomerNameMappingsGetRaw(requestParameters: CustomersCustomerNameMappingsGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<CustomerMeasurementMapping>>>;
    /**
     * Fetch all measurement mappings for a specific customer (by unique customer name).
     * Get Measurement Mappings
     */
    customersCustomerNameMappingsGet(requestParameters: CustomersCustomerNameMappingsGetRequest, initOverrides?: RequestInit): Promise<Array<CustomerMeasurementMapping>>;
    /**
     * Create a new measurement mapping for a customer. If no value_regex is passed, label existence is checked instead.
     * Append Measurement Mapping
     */
    customersCustomerNameMappingsPostRaw(requestParameters: CustomersCustomerNameMappingsPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<CustomerMeasurementMapping>>;
    /**
     * Create a new measurement mapping for a customer. If no value_regex is passed, label existence is checked instead.
     * Append Measurement Mapping
     */
    customersCustomerNameMappingsPost(requestParameters: CustomersCustomerNameMappingsPostRequest, initOverrides?: RequestInit): Promise<CustomerMeasurementMapping>;
    /**
     * Get the metadata for a given customer
     * Get All Customer Metadata
     */
    customersCustomerNameMetadataGetRaw(requestParameters: CustomersCustomerNameMetadataGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<CustomerMetadata>>>;
    /**
     * Get the metadata for a given customer
     * Get All Customer Metadata
     */
    customersCustomerNameMetadataGet(requestParameters: CustomersCustomerNameMetadataGetRequest, initOverrides?: RequestInit): Promise<Array<CustomerMetadata>>;
    /**
     * Add metadata to a customer (e.g., a tuple of Region: US for a US based customer)
     * Add metadata to a customer
     */
    customersCustomerNameMetadataPostRaw(requestParameters: CustomersCustomerNameMetadataPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Add metadata to a customer (e.g., a tuple of Region: US for a US based customer)
     * Add metadata to a customer
     */
    customersCustomerNameMetadataPost(requestParameters: CustomersCustomerNameMetadataPostRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Get the payment gateway credentials from the vendor\'s configured payment gateway for the given customer. For example, this endpoint will return a customer\'s Stripe customer ID, assuming the vendor has integrated with stripe and has configured the given customer with a Stripe customer ID.
     * Get PaymentGatewayCredential
     */
    customersCustomerNamePaymentGatewayCredentialsGetRaw(requestParameters: CustomersCustomerNamePaymentGatewayCredentialsGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<PaymentGatewayCredential>>;
    /**
     * Get the payment gateway credentials from the vendor\'s configured payment gateway for the given customer. For example, this endpoint will return a customer\'s Stripe customer ID, assuming the vendor has integrated with stripe and has configured the given customer with a Stripe customer ID.
     * Get PaymentGatewayCredential
     */
    customersCustomerNamePaymentGatewayCredentialsGet(requestParameters: CustomersCustomerNamePaymentGatewayCredentialsGetRequest, initOverrides?: RequestInit): Promise<PaymentGatewayCredential>;
    /**
     * Add credentials for a customer\'s account in the vendor\'s currently configured payment gateway. For example, this endpoint can be used to associate a customer with a Stripe customer ID.
     * Add PaymentGatewayCredential
     */
    customersCustomerNamePaymentGatewayCredentialsPostRaw(requestParameters: CustomersCustomerNamePaymentGatewayCredentialsPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<PaymentGatewayCredential>>;
    /**
     * Add credentials for a customer\'s account in the vendor\'s currently configured payment gateway. For example, this endpoint can be used to associate a customer with a Stripe customer ID.
     * Add PaymentGatewayCredential
     */
    customersCustomerNamePaymentGatewayCredentialsPost(requestParameters: CustomersCustomerNamePaymentGatewayCredentialsPostRequest, initOverrides?: RequestInit): Promise<PaymentGatewayCredential>;
    /**
     * Fetch payment method status for a specific customer (by unique customer name).
     * Get Customer Payment Method Status
     */
    customersCustomerNamePaymentMethodStatusGetRaw(requestParameters: CustomersCustomerNamePaymentMethodStatusGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<CustomerPaymentMethodStatus>>;
    /**
     * Fetch payment method status for a specific customer (by unique customer name).
     * Get Customer Payment Method Status
     */
    customersCustomerNamePaymentMethodStatusGet(requestParameters: CustomersCustomerNamePaymentMethodStatusGetRequest, initOverrides?: RequestInit): Promise<CustomerPaymentMethodStatus>;
    /**
     * Update a single customer. To update Customer measurement mappings, use the `customers/{customer_name}/mappings` endpoint.
     * Update Customer
     */
    customersCustomerNamePutRaw(requestParameters: CustomersCustomerNamePutRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Customer>>;
    /**
     * Update a single customer. To update Customer measurement mappings, use the `customers/{customer_name}/mappings` endpoint.
     * Update Customer
     */
    customersCustomerNamePut(requestParameters: CustomersCustomerNamePutRequest, initOverrides?: RequestInit): Promise<Customer>;
    /**
     * Fetch revenue of a customer from start_time and end_time.
     * Get Customer Revenue
     */
    customersCustomerNameRevenueGetRaw(requestParameters: CustomersCustomerNameRevenueGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<RevenueResponse>>;
    /**
     * Fetch revenue of a customer from start_time and end_time.
     * Get Customer Revenue
     */
    customersCustomerNameRevenueGet(requestParameters: CustomersCustomerNameRevenueGetRequest, initOverrides?: RequestInit): Promise<RevenueResponse>;
    /**
     * Fetch current cycle revenue for a customer and generate an invoice.
     * Generate Current Invoice
     */
    customersCustomerNameSampleInvoiceAsOfStrTokenGetRaw(requestParameters: CustomersCustomerNameSampleInvoiceAsOfStrTokenGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Error>>;
    /**
     * Fetch current cycle revenue for a customer and generate an invoice.
     * Generate Current Invoice
     */
    customersCustomerNameSampleInvoiceAsOfStrTokenGet(requestParameters: CustomersCustomerNameSampleInvoiceAsOfStrTokenGetRequest, initOverrides?: RequestInit): Promise<Error>;
    /**
     * Fetch current cycle revenue for a customer and generate an invoice.
     * Generate Current Invoice
     */
    customersCustomerNameSampleInvoiceTokenGetRaw(requestParameters: CustomersCustomerNameSampleInvoiceTokenGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Error>>;
    /**
     * Fetch current cycle revenue for a customer and generate an invoice.
     * Generate Current Invoice
     */
    customersCustomerNameSampleInvoiceTokenGet(requestParameters: CustomersCustomerNameSampleInvoiceTokenGetRequest, initOverrides?: RequestInit): Promise<Error>;
    /**
     * Get a list of any subscriptions scheduled to start in the future for the given customer.
     * Get Scheduled Subscriptions
     */
    customersCustomerNameScheduledSubscriptionsGetRaw(requestParameters: CustomersCustomerNameScheduledSubscriptionsGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<Subscription>>>;
    /**
     * Get a list of any subscriptions scheduled to start in the future for the given customer.
     * Get Scheduled Subscriptions
     */
    customersCustomerNameScheduledSubscriptionsGet(requestParameters: CustomersCustomerNameScheduledSubscriptionsGetRequest, initOverrides?: RequestInit): Promise<Array<Subscription>>;
    /**
     * Delete a customer\'s spend threshold.
     * Delete Customer Spend Threshold
     */
    customersCustomerNameSpendThresholdDeleteRaw(requestParameters: CustomersCustomerNameSpendThresholdDeleteRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Delete a customer\'s spend threshold.
     * Delete Customer Spend Threshold
     */
    customersCustomerNameSpendThresholdDelete(requestParameters: CustomersCustomerNameSpendThresholdDeleteRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Fetch the spend threshold for a customer.
     * Get Customer Spend Threshold
     */
    customersCustomerNameSpendThresholdGetRaw(requestParameters: CustomersCustomerNameSpendThresholdGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<CustomerSpendThreshold>>;
    /**
     * Fetch the spend threshold for a customer.
     * Get Customer Spend Threshold
     */
    customersCustomerNameSpendThresholdGet(requestParameters: CustomersCustomerNameSpendThresholdGetRequest, initOverrides?: RequestInit): Promise<CustomerSpendThreshold>;
    /**
     * Create a spend threshold for a customer.
     * Create Customer Spend Threshold
     */
    customersCustomerNameSpendThresholdPostRaw(requestParameters: CustomersCustomerNameSpendThresholdPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<CustomerSpendThreshold>>;
    /**
     * Create a spend threshold for a customer.
     * Create Customer Spend Threshold
     */
    customersCustomerNameSpendThresholdPost(requestParameters: CustomersCustomerNameSpendThresholdPostRequest, initOverrides?: RequestInit): Promise<CustomerSpendThreshold>;
    /**
     * Get the current status for a customer.
     * Get Customer Status
     */
    customersCustomerNameStatusGetRaw(requestParameters: CustomersCustomerNameStatusGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<CustomerStatus>>;
    /**
     * Get the current status for a customer.
     * Get Customer Status
     */
    customersCustomerNameStatusGet(requestParameters: CustomersCustomerNameStatusGetRequest, initOverrides?: RequestInit): Promise<CustomerStatus>;
    /**
     * Add or remove add ons from the current customer\'s subscription.
     * Modify Add Ons on Subscription
     */
    customersCustomerNameSubscriptionAddOnsPostRaw(requestParameters: CustomersCustomerNameSubscriptionAddOnsPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Add or remove add ons from the current customer\'s subscription.
     * Modify Add Ons on Subscription
     */
    customersCustomerNameSubscriptionAddOnsPost(requestParameters: CustomersCustomerNameSubscriptionAddOnsPostRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Delete a subscription for a specific customer (by customer name).
     * Delete Subscription
     */
    customersCustomerNameSubscriptionDeleteRaw(requestParameters: CustomersCustomerNameSubscriptionDeleteRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Delete a subscription for a specific customer (by customer name).
     * Delete Subscription
     */
    customersCustomerNameSubscriptionDelete(requestParameters: CustomersCustomerNameSubscriptionDeleteRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Update a subscription for a specific customer (by customer name).
     * Update Subscription
     */
    customersCustomerNameSubscriptionPutRaw(requestParameters: CustomersCustomerNameSubscriptionPutRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Subscription>>;
    /**
     * Update a subscription for a specific customer (by customer name).
     * Update Subscription
     */
    customersCustomerNameSubscriptionPut(requestParameters: CustomersCustomerNameSubscriptionPutRequest, initOverrides?: RequestInit): Promise<Subscription>;
    /**
     * Update a subscription in-place for a specific customer (by customer name).
     * Update Subscription In-Place
     */
    customersCustomerNameSubscriptionUpdateInPlacePutRaw(requestParameters: CustomersCustomerNameSubscriptionUpdateInPlacePutRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Subscription>>;
    /**
     * Update a subscription in-place for a specific customer (by customer name).
     * Update Subscription In-Place
     */
    customersCustomerNameSubscriptionUpdateInPlacePut(requestParameters: CustomersCustomerNameSubscriptionUpdateInPlacePutRequest, initOverrides?: RequestInit): Promise<Subscription>;
    /**
     * Get all subscriptions for the customer.
     * Get Subscriptions
     */
    customersCustomerNameSubscriptionsGetRaw(requestParameters: CustomersCustomerNameSubscriptionsGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<Subscription>>>;
    /**
     * Get all subscriptions for the customer.
     * Get Subscriptions
     */
    customersCustomerNameSubscriptionsGet(requestParameters: CustomersCustomerNameSubscriptionsGetRequest, initOverrides?: RequestInit): Promise<Array<Subscription>>;
    /**
     * Create a new subscription for a customer / price plan combination (by unique name).
     * Create Subscription
     */
    customersCustomerNameSubscriptionsPostRaw(requestParameters: CustomersCustomerNameSubscriptionsPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Subscription>>;
    /**
     * Create a new subscription for a customer / price plan combination (by unique name).
     * Create Subscription
     */
    customersCustomerNameSubscriptionsPost(requestParameters: CustomersCustomerNameSubscriptionsPostRequest, initOverrides?: RequestInit): Promise<Subscription>;
    /**
     * Gets the total accrued revenue for a customer broken down by line item until the beginning of the current hour.
     * Get Total Accrued Revenue
     */
    customersCustomerNameTotalAccruedRevenueGetRaw(requestParameters: CustomersCustomerNameTotalAccruedRevenueGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<AccruedRevenue>>;
    /**
     * Gets the total accrued revenue for a customer broken down by line item until the beginning of the current hour.
     * Get Total Accrued Revenue
     */
    customersCustomerNameTotalAccruedRevenueGet(requestParameters: CustomersCustomerNameTotalAccruedRevenueGetRequest, initOverrides?: RequestInit): Promise<AccruedRevenue>;
    /**
     * Get the usage for a customer across all meters in XLS format for a given time period.
     * Get Customer\'s Usage Across Meters
     */
    customersCustomerNameUsageAcrossMetersTokenGetRaw(requestParameters: CustomersCustomerNameUsageAcrossMetersTokenGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Get the usage for a customer across all meters in XLS format for a given time period.
     * Get Customer\'s Usage Across Meters
     */
    customersCustomerNameUsageAcrossMetersTokenGet(requestParameters: CustomersCustomerNameUsageAcrossMetersTokenGetRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * [DEPRECATED] For the given meter, get a customer\'s total usage.
     * Get Usage By Meter
     */
    customersCustomerNameUsageGetRaw(requestParameters: CustomersCustomerNameUsageGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<CustomerUsage>>;
    /**
     * [DEPRECATED] For the given meter, get a customer\'s total usage.
     * Get Usage By Meter
     */
    customersCustomerNameUsageGet(requestParameters: CustomersCustomerNameUsageGetRequest, initOverrides?: RequestInit): Promise<CustomerUsage>;
    /**
     * Retrieve all customers for a given vendor.
     * Get All Customers
     */
    customersGetRaw(initOverrides?: RequestInit): Promise<runtime.ApiResponse<Array<Customer>>>;
    /**
     * Retrieve all customers for a given vendor.
     * Get All Customers
     */
    customersGet(initOverrides?: RequestInit): Promise<Array<Customer>>;
    /**
     * Create a new customer.
     * Create Customer
     */
    customersPostRaw(requestParameters: CustomersPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Customer>>;
    /**
     * Create a new customer.
     * Create Customer
     */
    customersPost(requestParameters: CustomersPostRequest, initOverrides?: RequestInit): Promise<Customer>;
}
