import type { TaxCalculation } from './TaxCalculation';
import type { SubscriptionProductVersionState } from './SubscriptionProductVersionState';
/**
 *
 * @export
 * @interface SubscriptionProductVersionPending
 */
export interface SubscriptionProductVersionPending {
    /**
     * The three-letter codes (ISO 4217 format) of the currencies that the product version supports.
     * @type {Set<string>}
     * @memberof SubscriptionProductVersionPending
     */
    enabledCurrencies?: Set<string>;
    /**
     * The product that the version belongs to.
     * @type {number}
     * @memberof SubscriptionProductVersionPending
     */
    product?: number;
    /**
     *
     * @type {TaxCalculation}
     * @memberof SubscriptionProductVersionPending
     */
    taxCalculation?: TaxCalculation;
    /**
     * The recurring period of time, typically monthly or annually, for which a subscriber is charged.
     * @type {string}
     * @memberof SubscriptionProductVersionPending
     */
    billingCycle?: string;
    /**
     * The three-letter code (ISO 4217 format) of the product version's default currency.
     * @type {string}
     * @memberof SubscriptionProductVersionPending
     */
    defaultCurrency?: string;
    /**
     * The localized name of the product that is displayed to the customer.
     * @type {{ [key: string]: string; }}
     * @memberof SubscriptionProductVersionPending
     */
    name?: {
        [key: string]: string;
    };
    /**
     * The minimum number of periods the subscription will run before it can be terminated.
     * @type {number}
     * @memberof SubscriptionProductVersionPending
     */
    minimalNumberOfPeriods?: number;
    /**
     * A comment that describes the product version and why it was created. It is not disclosed to the subscriber.
     * @type {string}
     * @memberof SubscriptionProductVersionPending
     */
    comment?: string;
    /**
     *
     * @type {SubscriptionProductVersionState}
     * @memberof SubscriptionProductVersionPending
     */
    state?: SubscriptionProductVersionState;
    /**
     * The number of periods the subscription will keep running after its termination was requested.
     * @type {number}
     * @memberof SubscriptionProductVersionPending
     */
    numberOfNoticePeriods?: number;
    /**
     * The version number indicates the version of the entity. The version is incremented whenever the entity is changed.
     * @type {number}
     * @memberof SubscriptionProductVersionPending
     */
    version: number;
}
/**
 * Check if a given object implements the SubscriptionProductVersionPending interface.
 */
export declare function instanceOfSubscriptionProductVersionPending(value: object): value is SubscriptionProductVersionPending;
export declare function SubscriptionProductVersionPendingFromJSON(json: any): SubscriptionProductVersionPending;
export declare function SubscriptionProductVersionPendingFromJSONTyped(json: any, ignoreDiscriminator: boolean): SubscriptionProductVersionPending;
export declare function SubscriptionProductVersionPendingToJSON(json: any): SubscriptionProductVersionPending;
export declare function SubscriptionProductVersionPendingToJSONTyped(value?: SubscriptionProductVersionPending | null, ignoreDiscriminator?: boolean): any;
