import type { SecurityProviderAuthorizeResponse, SecurityStrategy, SessionStoreAdapter, TokenData } from '../types/interfaces'; import type { Connection } from 'typeorm'; import type { Context } from '../http/Context'; import type { DatabaseContainer } from '../database/DatabaseContainer'; import type { SecurityProviderOptions } from './SecurityProviderOptions'; import type { SecurityRequestContext } from '../types/types'; import type { SecurityResponse } from './SecurityResponse'; export declare class SecurityProvider { options: SecurityProviderOptions; protected response: SecurityResponse; protected adapter: SessionStoreAdapter; protected strategy: SecurityStrategy; protected connection: Connection; private argon2idGenerator; constructor(options: SecurityProviderOptions, response: SecurityResponse, adapter: SessionStoreAdapter, strategy: SecurityStrategy, databaseContainer: DatabaseContainer); login(context: SecurityRequestContext): Promise; logout(context: SecurityRequestContext): Promise; authorize(context: Context): Promise; forbidden(context: Context): Promise; generatePasswordHash(plainTextPassword: string): Promise; generateSessionId(): string; protected generateToken(context: SecurityRequestContext, userId: string): Promise<{ token: string; sessionId: string; }>; protected verifyToken(token: string): Promise; protected parseToken(token: string): Promise; }