/**
 * Repository Interface: ISponsorRepository
 * 
 * Defines operations for Sponsor aggregate persistence
 */

import type { Sponsor } from '../entities/Sponsor';

export interface ISponsorRepository {
  findById(id: string): Promise<Sponsor | null>;
  findAll(): Promise<Sponsor[]>;
  findByEmail(email: string): Promise<Sponsor | null>;
  create(sponsor: Sponsor): Promise<Sponsor>;
  update(sponsor: Sponsor): Promise<Sponsor>;
  delete(id: string): Promise<void>;
  exists(id: string): Promise<boolean>;
}