import { CreationOptional, DataTypes, InferAttributes, InferCreationAttributes } from 'sequelize'; import type { LiteralUnion } from 'type-fest'; import { TenantModel } from '../tenant-model'; import type { SubscriptionSchedulePhase } from './types'; export declare class SubscriptionSchedule extends TenantModel, InferCreationAttributes> { id: CreationOptional; livemode: boolean; instance_did?: string; current_phase: { end_date: Date; start_date: Date; }; customer_id: string; subscription_id: string; metadata: Record; status: LiteralUnion<'active' | 'canceled' | 'completed' | 'not_started' | 'released', string>; phases?: SubscriptionSchedulePhase[]; default_settings?: { billing_cycle_anchor: LiteralUnion<'phase_start' | 'automatic', string>; billing_thresholds: { amount_gte: number; reset_billing_cycle_anchor: boolean; }; collection_method: LiteralUnion<'charge_automatically' | 'send_invoice', string>; default_payment_method: string; description: string; invoice_settings: { days_until_due: number; }; }; end_behavior: LiteralUnion<'cancel' | 'release', string>; released_subscription_id?: string; test_clock_id?: string; canceled_at: number; completed_at: number; released_at: number; created_at: CreationOptional; updated_at: CreationOptional; static readonly GENESIS_ATTRIBUTES: { id: { type: DataTypes.StringDataType; primaryKey: boolean; allowNull: boolean; defaultValue: (size?: number) => string; }; livemode: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; current_phase: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; customer_id: { type: DataTypes.StringDataType; allowNull: boolean; }; subscription_id: { type: DataTypes.StringDataType; allowNull: boolean; }; released_subscription_id: { type: DataTypes.StringDataType; allowNull: boolean; }; status: { type: DataTypes.EnumDataType<"completed" | "active" | "canceled" | "not_started" | "released">; allowNull: boolean; }; default_settings: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; end_behavior: { type: DataTypes.EnumDataType<"release" | "cancel">; allowNull: boolean; }; test_clock_id: { type: DataTypes.StringDataType; allowNull: boolean; }; metadata: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; canceled_at: { type: DataTypes.IntegerDataTypeConstructor; allowNull: boolean; }; completed_at: { type: DataTypes.IntegerDataTypeConstructor; allowNull: boolean; }; released_at: { type: DataTypes.IntegerDataTypeConstructor; allowNull: boolean; }; created_at: { type: DataTypes.DateDataTypeConstructor; defaultValue: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; updated_at: { type: DataTypes.DateDataTypeConstructor; defaultValue: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; }; static initialize(sequelize: any): void; static associate(models: any): void; } export type TSubscriptionSchedule = InferAttributes;