import { Express, NextFunction, Request, Response } from "express"; import { TransactionBaseService } from "./index"; import { MedusaContainer } from "../types/global"; export interface IAuthenticationStrategy extends TransactionBaseService { authenticate(req: Request, res: Response): Promise; unAuthenticate(req: Request, res: Response): Promise; validate(req: Request, res: Response, next: NextFunction): Promise; shouldUseStrategy(req: Request, scope: "admin" | "store"): Promise; } export default abstract class AbstractAuthStrategy extends TransactionBaseService implements IAuthenticationStrategy { static identifier: string; static beforeInit(app: Express, container: MedusaContainer, options: Record): Promise; abstract shouldUseStrategy(req: Request, scope: "admin" | "store"): Promise; abstract authenticate(req: Request, res: Response): Promise; abstract unAuthenticate(req: Request, res: Response): Promise; abstract validate(req: Request, res: Response, next: NextFunction): Promise; } export declare function isAuthStrategy(obj: unknown): boolean;