/**
 *
 * @export
 * @interface SubscriptionProductComponentUpdate
 */
export interface SubscriptionProductComponentUpdate {
    /**
     * The reference is used to link components across different product versions.
     * @type {number}
     * @memberof SubscriptionProductComponentUpdate
     */
    reference?: number;
    /**
     * The tax class to be applied to fees.
     * @type {number}
     * @memberof SubscriptionProductComponentUpdate
     */
    taxClass?: number;
    /**
     * The quantity step determines the interval in which the quantity can be increased.
     * @type {number}
     * @memberof SubscriptionProductComponentUpdate
     */
    quantityStep?: number;
    /**
     * When listing components, they can be sorted by this number.
     * @type {number}
     * @memberof SubscriptionProductComponentUpdate
     */
    sortOrder?: number;
    /**
     * The group that the component belongs to.
     * @type {number}
     * @memberof SubscriptionProductComponentUpdate
     */
    componentGroup?: number;
    /**
     * The localized name of the component that is displayed to the customer.
     * @type {{ [key: string]: string; }}
     * @memberof SubscriptionProductComponentUpdate
     */
    name?: {
        [key: string]: string;
    };
    /**
     * The localized description of the component that is displayed to the customer.
     * @type {{ [key: string]: string; }}
     * @memberof SubscriptionProductComponentUpdate
     */
    description?: {
        [key: string]: string;
    };
    /**
     * If switching from a component with a lower tier to a component with a higher one, this is considered an upgrade and a fee may be applied.
     * @type {number}
     * @memberof SubscriptionProductComponentUpdate
     */
    componentChangeWeight?: number;
    /**
     * The version number indicates the version of the entity. The version is incremented whenever the entity is changed.
     * @type {number}
     * @memberof SubscriptionProductComponentUpdate
     */
    version: number;
    /**
     * A maximum of the defined quantity can be selected for this component.
     * @type {number}
     * @memberof SubscriptionProductComponentUpdate
     */
    maximalQuantity?: number;
    /**
     * Whether this is the default component in its group and preselected.
     * @type {boolean}
     * @memberof SubscriptionProductComponentUpdate
     */
    defaultComponent?: boolean;
    /**
     * A minimum of the defined quantity must be selected for this component.
     * @type {number}
     * @memberof SubscriptionProductComponentUpdate
     */
    minimalQuantity?: number;
}
/**
 * Check if a given object implements the SubscriptionProductComponentUpdate interface.
 */
export declare function instanceOfSubscriptionProductComponentUpdate(value: object): value is SubscriptionProductComponentUpdate;
export declare function SubscriptionProductComponentUpdateFromJSON(json: any): SubscriptionProductComponentUpdate;
export declare function SubscriptionProductComponentUpdateFromJSONTyped(json: any, ignoreDiscriminator: boolean): SubscriptionProductComponentUpdate;
export declare function SubscriptionProductComponentUpdateToJSON(json: any): SubscriptionProductComponentUpdate;
export declare function SubscriptionProductComponentUpdateToJSONTyped(value?: SubscriptionProductComponentUpdate | null, ignoreDiscriminator?: boolean): any;
