/**
 * 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 { CreditPlan } from './CreditPlan';
import { Discount } from './Discount';
import { Feature } from './Feature';
import { Limit } from './Limit';
import { PricePlan } from './PricePlan';
import { Trial } from './Trial';
/**
 *
 * @export
 * @interface Subscription
 */
export interface Subscription {
    /**
     *
     * @type {string}
     * @memberof Subscription
     */
    uuid: string;
    /**
     * Unique name identifier of a customer
     * @type {any}
     * @memberof Subscription
     */
    customerName: any | null;
    /**
     * Unique name indentifier of a price plan
     * @type {any}
     * @memberof Subscription
     */
    readonly pricePlanName: any | null;
    /**
     * External facing unique identifier of a price plan
     * @type {any}
     * @memberof Subscription
     */
    readonly pricePlanUuid: any | null;
    /**
     * Price plan associated with this subscription.
     * @type {PricePlan}
     * @memberof Subscription
     */
    pricePlan?: PricePlan | null;
    /**
     * Align billing cycles to a calendar unit if true. For example if the period is month, cycles will end on the first of every month.
     * @type {boolean}
     * @memberof Subscription
     */
    alignToCalendar?: boolean;
    /**
     *
     * @type {Array<Discount>}
     * @memberof Subscription
     */
    discounts?: Array<Discount>;
    /**
     *
     * @type {any}
     * @memberof Subscription
     */
    readonly addOns?: any | null;
    /**
     * Optional trial override for the associated subscription.
     * @type {Trial}
     * @memberof Subscription
     */
    trialOverride?: Trial | null;
    /**
     * Optional base price override for the associated subscription.
     * @type {number}
     * @memberof Subscription
     */
    basePriceOverride?: number | null;
    /**
     *
     * @type {Array<Feature>}
     * @memberof Subscription
     */
    featuresOverride?: Array<Feature>;
    /**
     *
     * @type {Array<Limit>}
     * @memberof Subscription
     */
    limitsOverride?: Array<Limit>;
    /**
     * ISO-8601 formatted timestamp that defines when the subscription should take effect. If this field is omitted, the subscription is effective upon creation.
     * @type {Date}
     * @memberof Subscription
     */
    effectiveAt?: Date;
    /**
     * ISO-8601 formatted timestamp that defines when the subscription will expire.
     * @type {Date}
     * @memberof Subscription
     */
    expiredAt?: Date | null;
    /**
     * Credit plan associated with this subscription.
     * @type {CreditPlan}
     * @memberof Subscription
     */
    creditPlan?: CreditPlan | null;
}
export declare function SubscriptionFromJSON(json: any): Subscription;
export declare function SubscriptionFromJSONTyped(json: any, ignoreDiscriminator: boolean): Subscription;
export declare function SubscriptionToJSON(value?: Subscription | null): any;
