import * as Soap from "@soapjs/soap"; import { AuthFailureContext, AuthSuccessContext, BaseAuthStrategyConfig } from "../types"; import { SessionHandler } from "../session/session-handler"; import { AccountLockService } from "../services/account-lock.service"; import { MfaService } from "../services/mfa.service"; import { RateLimitService } from "../services/rate-limit.service"; import { RoleService } from "../services/role.service"; import { AuthThrottleService } from "../services/auth-throttle.service"; export declare abstract class BaseAuthStrategy { protected config: BaseAuthStrategyConfig; protected session?: SessionHandler; protected logger?: Soap.Logger; protected accountLock: AccountLockService; protected mfa: MfaService; protected rateLimit: RateLimitService; protected role: RoleService; protected throttle: AuthThrottleService; abstract readonly name: string; abstract authenticate(ctx: TContext): Promise | null>; constructor(config: BaseAuthStrategyConfig, session?: SessionHandler, logger?: Soap.Logger); init(): Promise; protected onSuccess(action: string, context: AuthSuccessContext): Promise; protected onFailure(action: string, context: AuthFailureContext): Promise; protected authenticateWithSession(context: TContext): Promise>; }