/**
 * Repository Interface: SponsorAccountRepository
 * 
 * Defines persistence operations for SponsorAccount entities.
 */

import type { SponsorAccount } from '../entities/SponsorAccount';
import type { UserId } from '../value-objects/UserId';

export interface SponsorAccountRepository {
  save(account: SponsorAccount): Promise<void>;
  findById(id: UserId): Promise<SponsorAccount | null>;
  findBySponsorId(sponsorId: string): Promise<SponsorAccount | null>;
  findByEmail(email: string): Promise<SponsorAccount | null>;
  delete(id: UserId): Promise<void>;
}