/**
 * AdvancedBilling
 *
 * This file was automatically generated for Maxio by APIMATIC v3.0 ( https://www.apimatic.io ).
 */
import { Schema } from '../schema.js';
import { ComponentKind } from './componentKind.js';
import { SubscriptionComponentAllocatedQuantity } from './containers/subscriptionComponentAllocatedQuantity.js';
import { CreditType } from './creditType.js';
import { HistoricUsage } from './historicUsage.js';
import { IntervalUnit } from './intervalUnit.js';
import { PricePointType } from './pricePointType.js';
import { PricingScheme } from './pricingScheme.js';
import { SubscriptionComponentSubscription } from './subscriptionComponentSubscription.js';
export interface SubscriptionComponent {
    id?: number;
    name?: string;
    /** A handle for the component type */
    kind?: ComponentKind;
    unitName?: string;
    /** (for on/off components) indicates if the component is enabled for the subscription */
    enabled?: boolean;
    unitBalance?: number;
    currency?: string;
    /** For Quantity-based components: The current allocation for the component on the given subscription. For On/Off components: Use 1 for on. Use 0 for off. */
    allocatedQuantity?: SubscriptionComponentAllocatedQuantity;
    pricingScheme?: PricingScheme | null;
    componentId?: number;
    componentHandle?: string | null;
    subscriptionId?: number;
    recurring?: boolean;
    /** The type of credit to be created when upgrading/downgrading. Defaults to the component and then site setting if one is not provided. */
    upgradeCharge?: CreditType | null;
    /** The type of credit to be created when upgrading/downgrading. Defaults to the component and then site setting if one is not provided. */
    downgradeCredit?: CreditType | null;
    archivedAt?: string | null;
    pricePointId?: number | null;
    pricePointHandle?: string | null;
    pricePointType?: PricePointType | null;
    pricePointName?: string | null;
    productFamilyId?: number;
    productFamilyHandle?: string;
    createdAt?: string;
    updatedAt?: string;
    useSiteExchangeRate?: boolean | null;
    description?: string | null;
    allowFractionalQuantities?: boolean;
    /** An optional object, will be returned if provided `include=subscription` query param. */
    subscription?: SubscriptionComponentSubscription;
    historicUsages?: HistoricUsage[];
    displayOnHostedPage?: boolean;
    /** The numerical interval. i.e. an interval of '30' coupled with an interval_unit of day would mean this component price point would renew every 30 days. This property is only available for sites with Multifrequency enabled. */
    interval?: number;
    /** A string representing the interval unit for this component price point, either month or day. This property is only available for sites with Multifrequency enabled. */
    intervalUnit?: IntervalUnit | null;
    [key: string]: unknown;
}
export declare const subscriptionComponentSchema: Schema<SubscriptionComponent>;
//# sourceMappingURL=subscriptionComponent.d.ts.map