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