import type { SubscriptionProductComponent } from './SubscriptionProductComponent';
import type { ProductFeeType } from './ProductFeeType';
import type { ProductMeteredTierPricing } from './ProductMeteredTierPricing';
import type { SubscriptionMetric } from './SubscriptionMetric';
/**
 *
 * @export
 * @interface ProductMeteredFee
 */
export interface ProductMeteredFee {
    /**
     * The ID of the space this object belongs to.
     * @type {number}
     * @memberof ProductMeteredFee
     */
    readonly linkedSpaceId?: number;
    /**
     *
     * @type {SubscriptionProductComponent}
     * @memberof ProductMeteredFee
     */
    component?: SubscriptionProductComponent;
    /**
     *
     * @type {ProductMeteredTierPricing}
     * @memberof ProductMeteredFee
     */
    tierPricing?: ProductMeteredTierPricing;
    /**
     *
     * @type {SubscriptionMetric}
     * @memberof ProductMeteredFee
     */
    metric?: SubscriptionMetric;
    /**
     * The localized name of the fee that is displayed to the customer.
     * @type {{ [key: string]: string; }}
     * @memberof ProductMeteredFee
     */
    readonly name?: {
        [key: string]: string;
    };
    /**
     * The localized description of the fee that is displayed to the customer.
     * @type {{ [key: string]: string; }}
     * @memberof ProductMeteredFee
     */
    readonly description?: {
        [key: string]: string;
    };
    /**
     * A unique identifier for the object.
     * @type {number}
     * @memberof ProductMeteredFee
     */
    readonly id?: number;
    /**
     *
     * @type {ProductFeeType}
     * @memberof ProductMeteredFee
     */
    type?: ProductFeeType;
    /**
     * The version is used for optimistic locking and incremented whenever the object is updated.
     * @type {number}
     * @memberof ProductMeteredFee
     */
    readonly version?: number;
}
/**
 * Check if a given object implements the ProductMeteredFee interface.
 */
export declare function instanceOfProductMeteredFee(value: object): value is ProductMeteredFee;
export declare function ProductMeteredFeeFromJSON(json: any): ProductMeteredFee;
export declare function ProductMeteredFeeFromJSONTyped(json: any, ignoreDiscriminator: boolean): ProductMeteredFee;
export declare function ProductMeteredFeeToJSON(json: any): ProductMeteredFee;
export declare function ProductMeteredFeeToJSONTyped(value?: Omit<ProductMeteredFee, 'linkedSpaceId' | 'name' | 'description' | 'id' | 'version'> | null, ignoreDiscriminator?: boolean): any;
