import * as Soap from "@soapjs/soap"; import { CredentialAuthStrategyConfig, NewPasswordOptions } from "../types"; import { BaseAuthStrategy } from "./base-auth.strategy"; import { SessionHandler } from "../session/session-handler"; import { JwtStrategy } from "./jwt/jwt.strategy"; import { PasswordService } from "../services/password.service"; export declare abstract class CredentialAuthStrategy extends BaseAuthStrategy { protected config: CredentialAuthStrategyConfig; protected session?: SessionHandler; protected jwt?: JwtStrategy; protected logger?: Soap.Logger; protected password: PasswordService; protected abstract verifyCredentials(identifier: string, password: string): Promise; protected abstract extractCredentials(context: TContext): any; constructor(config: CredentialAuthStrategyConfig, session?: SessionHandler, jwt?: JwtStrategy, logger?: Soap.Logger); protected fetchUser(payload: unknown): Promise; authenticate(context: TContext): Promise | null>; login(context: TContext): Promise>; logout(context: TContext): Promise; requestPasswordResetLink(identifier: string, email?: string): Promise; resetPasswordWithToken(identifier: string, token: string, newPassword: string, passwordOptions?: NewPasswordOptions): Promise; replacePassword(identifier: string, oldPassword: string, newPassword: string, options?: NewPasswordOptions): Promise; }