import type { SubscriptionProductState } from './SubscriptionProductState';
/**
 * A subscription product represents a product to which a subscriber can subscribe to. A product defines how much the subscription costs and in what cycles the subscribe is charged.
 * @export
 * @interface SubscriptionProductActive
 */
export interface SubscriptionProductActive {
    /**
     * When listing products, they can be sorted by this number.
     * @type {number}
     * @memberof SubscriptionProductActive
     */
    sortOrder?: number;
    /**
     * The name used to identify the product.
     * @type {string}
     * @memberof SubscriptionProductActive
     */
    name?: string;
    /**
     * Whether subscriptions can be switched to or from this product, or whether they are locked in.
     * @type {boolean}
     * @memberof SubscriptionProductActive
     */
    productLocked?: boolean;
    /**
     *
     * @type {SubscriptionProductState}
     * @memberof SubscriptionProductActive
     */
    state?: SubscriptionProductState;
    /**
     * The period after which a subscription that has been suspended due to a failed payment is terminated.
     * @type {string}
     * @memberof SubscriptionProductActive
     */
    failedPaymentSuspensionPeriod?: string;
    /**
     * The payment methods that can be used to subscribe to this product. If none are selected, no restriction is applied.
     * @type {Array<number>}
     * @memberof SubscriptionProductActive
     */
    allowedPaymentMethodConfigurations?: Array<number>;
    /**
     * The version number indicates the version of the entity. The version is incremented whenever the entity is changed.
     * @type {number}
     * @memberof SubscriptionProductActive
     */
    version: number;
}
/**
 * Check if a given object implements the SubscriptionProductActive interface.
 */
export declare function instanceOfSubscriptionProductActive(value: object): value is SubscriptionProductActive;
export declare function SubscriptionProductActiveFromJSON(json: any): SubscriptionProductActive;
export declare function SubscriptionProductActiveFromJSONTyped(json: any, ignoreDiscriminator: boolean): SubscriptionProductActive;
export declare function SubscriptionProductActiveToJSON(json: any): SubscriptionProductActive;
export declare function SubscriptionProductActiveToJSONTyped(value?: SubscriptionProductActive | null, ignoreDiscriminator?: boolean): any;
