import 'reflect-metadata'; import { OnGatewayConnection } from '@nestjs/websockets'; import { Server, Socket } from 'socket.io'; import { PrismaService } from '../prisma/prisma.service'; import { ParticipantRole } from '@prisma/client'; import { Reflector } from '@nestjs/core'; import { CanActivate, ExecutionContext } from '@nestjs/common'; import { Cache } from 'cache-manager'; export declare class CommentGateway implements OnGatewayConnection { server: Server; handleConnection(client: Socket): void; handleJoinTour(client: Socket, tourId: string): void; handleJoinPhoto(client: Socket, photoId: string): void; notifyNewComment(tourId: string, data: any): void; notifyNewPhotoComment(photoId: string, data: any): void; handleJoinUser(client: Socket, userId: string): void; notifyNewMessage(receiverId: string, data: any): void; notifyConnectionAccepted(requesterId: string, data: any): void; notifyJoinRequestAccepted(userId: string, data: any): void; } export declare const ROLES_KEY = "roles"; export declare const Roles: (...roles: ParticipantRole[]) => import("@nestjs/common").CustomDecorator; export declare class TourRoleGuard implements CanActivate { private reflector; private prisma; private cacheManager; constructor(reflector: Reflector, prisma: PrismaService, cacheManager: Cache); canActivate(context: ExecutionContext): Promise; } export declare class EmailService { private transporter; constructor(); sendOTP(email: string, otp: string): Promise; sendTourInvitation(email: string, tourTitle: string, inviteLink: string): Promise; }