import type { User, CreateUserInput, UpdateUserInput } from '../entities/user.js'; /** * Repository interface for User entity operations. * Implement this interface in infrastructure layer. */ export interface IUserRepository { /** * Find a user by ID */ getById(id: string): Promise; /** * Find a user by email within a tenant */ getByEmail(tenantId: string, email: string): Promise; /** * Get all users for a tenant */ getByTenant(tenantId: string): Promise; /** * Create a new user */ create(input: CreateUserInput & { id: string; passwordHash: string; }): Promise; /** * Update an existing user */ update(id: string, input: UpdateUserInput): Promise; /** * Delete a user */ delete(id: string): Promise; /** * Check if email exists in tenant */ emailExists(tenantId: string, email: string): Promise; } //# sourceMappingURL=IUserRepository.d.ts.map