import { CreationOptional, DataTypes, InferAttributes, InferCreationAttributes } from 'sequelize'; import { TenantModel } from '../tenant-model'; import { PaymentDetails, PaymentSettings } from './types'; export declare class AutoRechargeConfig extends TenantModel, InferCreationAttributes> { id: CreationOptional; customer_id: string; livemode: boolean; instance_did?: string; enabled: boolean; threshold: string; currency_id: string; recharge_currency_id?: string; price_id: string; quantity: number; payment_method_id?: string; payment_settings?: PaymentSettings; payment_details?: PaymentDetails; daily_limits?: { max_attempts: number; max_amount: string; }; last_recharge_date?: string; daily_stats?: { attempt_count: number; total_amount: string; }; slippage_config?: { mode?: 'percent' | 'rate'; percent?: number; min_acceptable_rate?: string; base_currency?: string; updated_at_ms?: number; } | null; metadata?: Record; created_at: CreationOptional; updated_at: CreationOptional; static readonly GENESIS_ATTRIBUTES: { id: { type: DataTypes.StringDataType; primaryKey: boolean; allowNull: boolean; defaultValue: (size?: number) => string; }; customer_id: { type: DataTypes.StringDataType; allowNull: boolean; references: { model: string; key: string; }; }; livemode: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; enabled: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; defaultValue: boolean; }; threshold: { type: DataTypes.StringDataType; allowNull: boolean; }; payment_method_id: { type: DataTypes.StringDataType; allowNull: boolean; }; currency_id: { type: DataTypes.StringDataType; allowNull: boolean; }; recharge_currency_id: { type: DataTypes.StringDataType; allowNull: boolean; }; price_id: { type: DataTypes.StringDataType; allowNull: boolean; }; quantity: { type: DataTypes.IntegerDataTypeConstructor; defaultValue: number; allowNull: boolean; }; payment_settings: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; defaultValue: { payment_method_types: never[]; payment_method_options: {}; }; }; payment_details: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; daily_limits: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; defaultValue: { max_attempts: number; max_amount: string; }; }; last_recharge_date: { type: DataTypes.StringDataType; allowNull: boolean; }; daily_stats: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; defaultValue: { attempt_count: number; total_amount: string; }; }; slippage_config: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; metadata: { type: DataTypes.AbstractDataTypeConstructor; 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; canRechargeToday(nextAmount: string): boolean; updateDailyStats(amount: string): Promise; } export type TAutoRechargeConfig = InferAttributes;