import { AuthResult } from "@/src/entities/models/auth/auth-result.model" import { ISendMagicLinkSchema } from "@/src/entities/models/auth/send-magic-link.model" import { ISendPasswordRecoverySchema } from "@/src/entities/models/auth/send-password-recovery.model" import { Session } from "@/src/entities/models/auth/session.model" import { TSignInSchema, ISignInWithPasswordSchema, ISignInPasswordlessSchema } from "@/src/entities/models/auth/sign-in.model" import { SignUpWithEmailSchema, SignUpWithPhoneSchema, TSignUpSchema, ISignUpWithEmailSchema, ISignUpWithPhoneSchema } from "@/src/entities/models/auth/sign-up.model" import { IVerifyOtpSchema } from "@/src/entities/models/auth/verify-otp.model" import { IUserSchema } from "@/src/entities/models/users/users.model" export interface IAuthenticationService { signInPasswordless(credentials: ISignInPasswordlessSchema): Promise signInWithPassword(credentials: ISignInWithPasswordSchema): Promise SignUpWithEmail(credentials: ISignUpWithEmailSchema): Promise SignUpWithPhone(credentials: ISignUpWithPhoneSchema): Promise getSession(): Promise signOut(): Promise sendMagicLink(credentials: ISendMagicLinkSchema): Promise sendPasswordRecovery(credentials: ISendPasswordRecoverySchema): Promise verifyOtp(credentials: IVerifyOtpSchema): Promise checkPermission(email: string, action: string, resource: string): Promise; }