import type { SubscriptionProductState } from './SubscriptionProductState';
/**
 *
 * @export
 * @interface AbstractSubscriptionProductActive
 */
export interface AbstractSubscriptionProductActive {
    /**
     * When listing products, they can be sorted by this number.
     * @type {number}
     * @memberof AbstractSubscriptionProductActive
     */
    sortOrder?: number;
    /**
     * The name used to identify the product.
     * @type {string}
     * @memberof AbstractSubscriptionProductActive
     */
    name?: string;
    /**
     * Whether subscriptions can be switched to or from this product, or whether they are locked in.
     * @type {boolean}
     * @memberof AbstractSubscriptionProductActive
     */
    productLocked?: boolean;
    /**
     *
     * @type {SubscriptionProductState}
     * @memberof AbstractSubscriptionProductActive
     */
    state?: SubscriptionProductState;
    /**
     * The period after which a subscription that has been suspended due to a failed payment is terminated.
     * @type {string}
     * @memberof AbstractSubscriptionProductActive
     */
    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 AbstractSubscriptionProductActive
     */
    allowedPaymentMethodConfigurations?: Array<number>;
}
/**
 * Check if a given object implements the AbstractSubscriptionProductActive interface.
 */
export declare function instanceOfAbstractSubscriptionProductActive(value: object): value is AbstractSubscriptionProductActive;
export declare function AbstractSubscriptionProductActiveFromJSON(json: any): AbstractSubscriptionProductActive;
export declare function AbstractSubscriptionProductActiveFromJSONTyped(json: any, ignoreDiscriminator: boolean): AbstractSubscriptionProductActive;
export declare function AbstractSubscriptionProductActiveToJSON(json: any): AbstractSubscriptionProductActive;
export declare function AbstractSubscriptionProductActiveToJSONTyped(value?: AbstractSubscriptionProductActive | null, ignoreDiscriminator?: boolean): any;
