import type { PersistableCurrencyAmountUpdate } from './PersistableCurrencyAmountUpdate';
/**
 *
 * @export
 * @interface ProductSetupFeeUpdate
 */
export interface ProductSetupFeeUpdate {
    /**
     * The product component that the fee belongs to.
     * @type {number}
     * @memberof ProductSetupFeeUpdate
     */
    component?: number;
    /**
     * The localized name of the fee that is displayed to the customer.
     * @type {{ [key: string]: string; }}
     * @memberof ProductSetupFeeUpdate
     */
    name?: {
        [key: string]: string;
    };
    /**
     * The localized description of the fee that is displayed to the customer.
     * @type {{ [key: string]: string; }}
     * @memberof ProductSetupFeeUpdate
     */
    description?: {
        [key: string]: string;
    };
    /**
     * The amount charged to the customer once when they subscribe to a subscription.
     * @type {Set<PersistableCurrencyAmountUpdate>}
     * @memberof ProductSetupFeeUpdate
     */
    setupFee?: Set<PersistableCurrencyAmountUpdate>;
    /**
     * The amount charged to the customer when a subscription is downgraded.
     * @type {Set<PersistableCurrencyAmountUpdate>}
     * @memberof ProductSetupFeeUpdate
     */
    onDowngradeCreditedAmount?: Set<PersistableCurrencyAmountUpdate>;
    /**
     * The version number indicates the version of the entity. The version is incremented whenever the entity is changed.
     * @type {number}
     * @memberof ProductSetupFeeUpdate
     */
    version: number;
    /**
     * The amount charged to the customer when a subscription is upgraded.
     * @type {Set<PersistableCurrencyAmountUpdate>}
     * @memberof ProductSetupFeeUpdate
     */
    onUpgradeCreditedAmount?: Set<PersistableCurrencyAmountUpdate>;
}
/**
 * Check if a given object implements the ProductSetupFeeUpdate interface.
 */
export declare function instanceOfProductSetupFeeUpdate(value: object): value is ProductSetupFeeUpdate;
export declare function ProductSetupFeeUpdateFromJSON(json: any): ProductSetupFeeUpdate;
export declare function ProductSetupFeeUpdateFromJSONTyped(json: any, ignoreDiscriminator: boolean): ProductSetupFeeUpdate;
export declare function ProductSetupFeeUpdateToJSON(json: any): ProductSetupFeeUpdate;
export declare function ProductSetupFeeUpdateToJSONTyped(value?: ProductSetupFeeUpdate | null, ignoreDiscriminator?: boolean): any;
