/**
 * 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 { AddOn } from './AddOn';
import { Feature } from './Feature';
import { Limit } from './Limit';
import { MeteredComponent } from './MeteredComponent';
import { PricePlanTag } from './PricePlanTag';
import { Trial } from './Trial';
/**
 *
 * @export
 * @interface PricePlan
 */
export interface PricePlan {
    /**
     * External facing unique identifier of a price plan
     * @type {string}
     * @memberof PricePlan
     */
    externalUuid?: string;
    /**
     * Unique name indentifier of a price plan
     * @type {string}
     * @memberof PricePlan
     */
    name: string;
    /**
     * UI-friendly name used for data display. Defaults to `name`.
     * @type {string}
     * @memberof PricePlan
     */
    displayName?: string;
    /**
     *
     * @type {string}
     * @memberof PricePlan
     */
    description?: string | null;
    /**
     * Lowest denomination of currency. e.g. USD is represented as cents.
     * @type {number}
     * @memberof PricePlan
     */
    basePrice?: number | null;
    /**
     *
     * @type {number}
     * @memberof PricePlan
     */
    basePriceFrequency?: number | null;
    /**
     * Custom invoice description for the base price line item.
     * @type {string}
     * @memberof PricePlan
     */
    basePriceDescription?: string | null;
    /**
     * Time period that defines the length of a price plan cycle. One of `month`, `quarter`, or `year`.
     * @type {string}
     * @memberof PricePlan
     */
    period: string;
    /**
     *
     * @type {Array<MeteredComponent>}
     * @memberof PricePlan
     */
    meteredComponents: Array<MeteredComponent>;
    /**
     * Minimum amount to charge every 'period'
     * @type {number}
     * @memberof PricePlan
     */
    minimumCharge?: number | null;
    /**
     * The frequency (as a an integer multiple of the period) at which to charge the minimum charge.
     * @type {number}
     * @memberof PricePlan
     */
    minimumChargeFrequency?: number | null;
    /**
     *
     * @type {Array<Feature>}
     * @memberof PricePlan
     */
    features?: Array<Feature>;
    /**
     *
     * @type {Array<AddOn>}
     * @memberof PricePlan
     */
    addOns?: Array<AddOn>;
    /**
     *
     * @type {Array<Limit>}
     * @memberof PricePlan
     */
    limits?: Array<Limit>;
    /**
     *
     * @type {Array<PricePlanTag>}
     * @memberof PricePlan
     */
    tags?: Array<PricePlanTag>;
    /**
     *
     * @type {Trial}
     * @memberof PricePlan
     */
    trial?: Trial;
    /**
     * ISO-8601 formatted creation timestamp of price plan version
     * @type {Date}
     * @memberof PricePlan
     */
    createdAt?: Date;
}
export declare function PricePlanFromJSON(json: any): PricePlan;
export declare function PricePlanFromJSONTyped(json: any, ignoreDiscriminator: boolean): PricePlan;
export declare function PricePlanToJSON(value?: PricePlan | null): any;
