import type { Cookie } from "@/entities/models/cookie"; import type { Session } from "@/entities/models/session"; import type { User } from "@/entities/models/user"; export interface IAuthenticationService { generateUserId(): string; hashPassword(password: string): Promise; verifyPassword(hash: string, password: string): Promise; validateSession( sessionId: string ): Promise<{ user: User; session: Session }>; createSession(user: User): Promise<{ session: Session; cookie: Cookie }>; invalidateSession(sessionId: string): Promise<{ blankCookie: Cookie }>; }