import { Context, Effect, Layer } from "effect"; import { AuthError, DatabaseError, Session, User, ValidationError } from "../../../shared/types.js"; import { PasswordService } from "./PasswordService.js"; import { TokenService } from "./TokenService.js"; import { UserRepository } from "./UserRepository.js"; import { SessionRepository } from "./SessionRepository.js"; import { AuditLogService } from "./AuditLogService.js"; import { UserManagementService } from "../../user-management/UserManagementService.js"; export interface AuthServiceDeps { readonly register: (username: string, email: string, password: string, ipAddress?: string | null, userAgent?: string | null) => Effect.Effect; readonly login: (email: string, password: string, ipAddress?: string | null, userAgent?: string | null) => Effect.Effect<{ user: User; token: string; session: Session; }, AuthError | DatabaseError>; readonly logout: (sessionId: string, userId: string) => Effect.Effect; readonly verifyToken: (token: string) => Effect.Effect<{ user: User; session: Session; }, AuthError | DatabaseError>; } declare const AuthService_base: Context.TagClass; export declare class AuthService extends AuthService_base { static Live: Layer.Layer; } export {}; //# sourceMappingURL=AuthService.d.ts.map