import { Cache } from 'cache-manager'; import { FastifyRequest as Request } from 'fastify'; import { CanActivate, ExecutionContext } from '@nestjs/common'; import { Reflector } from '@nestjs/core'; import { JwtService } from '@nestjs/jwt'; import { UsersService } from '../../users/services/users.service'; import { UserRole } from '../../users/users.constants'; import { TokenOwnerType } from '../auth.constants'; import { TokensService } from '../services/tokens.service'; export declare const IS_PUBLIC_KEY = "isPublic"; export interface AuthenticatedUser { type: 'user'; id: string; role: UserRole; } export interface AuthenticatedLongLiveToken { type: 'token'; tokenId: string; ownerType: TokenOwnerType; ownerId: string | null; role: UserRole; } export type AuthenticatedEntity = AuthenticatedUser | AuthenticatedLongLiveToken; export interface AuthenticatedRequest extends Request { auth?: AuthenticatedEntity; } export declare const Public: () => (target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor) => void; export declare class AuthGuard implements CanActivate { private readonly jwtService; private readonly reflector; private readonly tokensService; private readonly usersService; private readonly cacheManager; private readonly logger; constructor(jwtService: JwtService, reflector: Reflector, tokensService: TokensService, usersService: UsersService, cacheManager: Cache); canActivate(context: ExecutionContext): Promise; private validateToken; private validateUserAccessToken; private validateDisplayToken; private validateLongLiveToken; private extractTokenFromHeader; }