/**
 * AdvancedBilling
 *
 * This file was automatically generated for Maxio by APIMATIC v3.0 ( https://www.apimatic.io ).
 */
import { Schema } from '../schema';
import { UpdateSubscriptionNetTerms } from './containers/updateSubscriptionNetTerms';
import { UpdateSubscriptionSnapDay } from './containers/updateSubscriptionSnapDay';
import { CreditCardAttributes } from './creditCardAttributes';
import { SubscriptionCustomPrice } from './subscriptionCustomPrice';
import { UpdateSubscriptionComponent } from './updateSubscriptionComponent';
export interface UpdateSubscription {
    creditCardAttributes?: CreditCardAttributes;
    /** Set to the handle of a different product to change the subscription's product */
    productHandle?: string;
    /** Set to the id of a different product to change the subscription's product */
    productId?: number;
    productChangeDelayed?: boolean;
    /** Set to an empty string to cancel a delayed product change. */
    nextProductId?: string;
    nextProductPricePointId?: string;
    /** Use for subscriptions with product eligible for calendar billing only. Value can be 1-28 or 'end'. */
    snapDay?: UpdateSubscriptionSnapDay;
    nextBillingAt?: string;
    paymentCollectionMethod?: string;
    receivesInvoiceEmails?: boolean;
    netTerms?: UpdateSubscriptionNetTerms;
    storedCredentialTransactionId?: number;
    reference?: string;
    /** (Optional) Used in place of `product_price_point_id` to define a custom price point unique to the subscription */
    customPrice?: SubscriptionCustomPrice;
    /** (Optional) An array of component ids and custom prices to be added to the subscription. */
    components?: UpdateSubscriptionComponent[];
    /** Enable Communication Delay feature, making sure no communication (email or SMS) is sent to the Customer between 9PM and 8AM in time zone set by the `dunning_communication_delay_time_zone` attribute. */
    dunningCommunicationDelayEnabled?: boolean;
    /** Time zone for the Dunning Communication Delay feature. */
    dunningCommunicationDelayTimeZone?: string | null;
    /** Set to change the current product's price point. */
    productPricePointId?: number;
    /** Set to change the current product's price point. */
    productPricePointHandle?: string;
    [key: string]: unknown;
}
export declare const updateSubscriptionSchema: Schema<UpdateSubscription>;
