import { Type } from '@nestjs/common'; import { RequestUser } from '../entity-module/RequestUser'; import { CaliobaseAuthProfileEntities } from './auth.module'; import { CreateUserRequest } from './auth.service'; import { AbstractOrganizationProfile } from './entities/abstract-organization-profile.entity'; import { AbstractUserProfile } from './entities/abstract-user-profile.entity'; import { User } from './entities/user.entity'; import { CaliobaseRequestUser } from './jwt.strategy'; import { SocialProvider } from './social-provider'; declare class CreatePasswordResetTokenBody { email: string; } export declare class ResetWithTokenBody { password: string; token: string; } declare class UserLoginBody { email: string; password: string; } declare class OtpRequest { email: string; } declare class UserLoginWithOtpBody { email: string; otp: string; } export declare class AccessTokenResponse { accessToken: string; } export type AccessTokenUserResponse = AccessTokenResponse & { user: User; }; export declare abstract class AbstractAuthController { abstract userExistsWithEmail(email: string): Promise; abstract createUserWithPassword(userDetails: { email: string; password: string; profile: Omit | null; }): Promise; abstract createUserWithoutPassword(userDetails: { email: string; profile: Omit | null; }): Promise; abstract emailResetToken(body: CreatePasswordResetTokenBody): Promise<{ success: boolean; }>; abstract resetWithToken(body: ResetWithTokenBody): Promise<{ success: boolean; }>; abstract loginUser(body: UserLoginBody): Promise; abstract loginUserWithOtp(body: UserLoginWithOtpBody): Promise; abstract sendOtpByEmail(request: OtpRequest): Promise; abstract getMe(user: RequestUser): Promise; } export declare function createAuthController({ profileEntities: { UserProfile }, socialProviders, }: { profileEntities: CaliobaseAuthProfileEntities; socialProviders: SocialProvider[]; }): Type & { CreateUserRequest: Type; }; export {};