import type { Result } from "./result.js"; import type { AccessToken, AuthError, PlainPassword, PublicUser, RefreshToken, StoredRefreshToken, StoredRefreshTokenId, User, UserId } from "./types.js"; export type RefreshResult = { accessToken: AccessToken; refreshToken: RefreshToken; }; export interface IAuthService { register(email: string, password: PlainPassword): Promise>; login(email: string, password: PlainPassword): Promise>; refresh(refreshToken: RefreshToken): Promise>; logout(refreshToken: RefreshToken): Promise>; } export interface IUserRepository { findById(id: UserId): Promise; findByEmail(email: string): Promise; save(user: User): Promise; } export interface ITokenRepository { findByToken(refreshToken: RefreshToken): Promise; save(refreshToken: StoredRefreshToken): Promise; delete(id: StoredRefreshTokenId): Promise; deleteAllForUser(userId: UserId): Promise; } //# sourceMappingURL=repository.d.ts.map