import { AuthenticationResult as ShopAuthenticationResult, PasswordValidationError } from '@vendure/common/lib/generated-shop-types'; import { AuthenticationResult as AdminAuthenticationResult, CurrentUser, MutationAuthenticateArgs, MutationLoginArgs, Success } from '@vendure/common/lib/generated-types'; import { Request, Response } from 'express'; import { InvalidCredentialsError, NotVerifiedError } from '../../../common/error/generated-graphql-shop-errors'; import { ConfigService } from '../../../config/config.service'; import { User } from '../../../entity/user/user.entity'; import { AdministratorService } from '../../../service/services/administrator.service'; import { AuthService } from '../../../service/services/auth.service'; import { UserService } from '../../../service/services/user.service'; import { ApiType } from '../../common/get-api-type'; import { RequestContext } from '../../common/request-context'; export declare class BaseAuthResolver { protected authService: AuthService; protected userService: UserService; protected administratorService: AdministratorService; protected configService: ConfigService; constructor(authService: AuthService, userService: UserService, administratorService: AdministratorService, configService: ConfigService); /** * Attempts a login given the username and password of a user. If successful, returns * the user data and returns the token either in a cookie or in the response body. */ baseLogin(args: MutationLoginArgs, ctx: RequestContext, req: Request, res: Response): Promise; logout(ctx: RequestContext, req: Request, res: Response): Promise; /** * Returns information about the current authenticated user. */ me(ctx: RequestContext, apiType: ApiType): Promise; /** * Creates an authenticated session and sets the session token. */ protected authenticateAndCreateSession(ctx: RequestContext, args: MutationAuthenticateArgs, req: Request, res: Response): Promise; /** * Updates the password of an existing User. */ protected updatePassword(ctx: RequestContext, currentPassword: string, newPassword: string): Promise; /** * Exposes a subset of the User properties which we want to expose to the public API. */ protected publiclyAccessibleUser(user: User): CurrentUser; }