import { Hex } from "viem"; import { EVMSmartWallet } from "../evm/smartWallet"; export interface SavingsAccount { accountIndex: number; privateKey: Hex; address: Hex; derivationPath: string; } export interface SmartSavingsAccount extends SavingsAccount { smartWallet: EVMSmartWallet; isInitialized: boolean; } export interface TransferToSavingsOptions { expectedAddress?: Hex; priority?: 'low' | 'medium' | 'high'; useSmartAccount?: boolean; } export interface WithdrawFromSavingsOptions { expectedAddress?: Hex; priority?: 'low' | 'medium' | 'high'; useSmartAccount?: boolean; } export interface AddressVerificationResult { accountIndex: number; storedAddress: Hex; derivedAddress: Hex; isValid: boolean; error?: string; } export interface SavingsAuditResult { total: number; valid: number; invalid: number; allValid: boolean; results: AddressVerificationResult[]; timestamp: Date; } export interface LockModuleConfig { lockDuration: number; lockedUntil: number; allowEarlyWithdrawal?: boolean; earlyWithdrawalPenalty?: number; } export interface PeriodicSavingsConfig { amount: number; frequency: 'daily' | 'weekly' | 'monthly'; savingsAccountIndex: number; endDate?: Date; maxExecutions?: number; } export interface SpendAndSaveConfig { savePercentage: number; savingsAccountIndex: number; minTransactionAmount?: number; maxSaveAmount?: number; }