/**
 * Repository Interface: TransactionRepository
 * 
 * Defines operations for Transaction entity persistence
 */

import type { Transaction, TransactionType } from '../entities/league-wallet/Transaction';

export interface TransactionRepository {
  findById(id: string): Promise<Transaction | null>;
  findByWalletId(walletId: string): Promise<Transaction[]>;
  findByType(type: TransactionType): Promise<Transaction[]>;
  create(transaction: Transaction): Promise<Transaction>;
  update(transaction: Transaction): Promise<Transaction>;
  delete(id: string): Promise<void>;
  exists(id: string): Promise<boolean>;
}