import { OnGatewayInit, OnGatewayConnection, OnGatewayDisconnect } from '@nestjs/websockets';
import { Server, Socket } from 'socket.io';
import { AuthService } from '../auth/auth.service';
import type { WSClientMessage, WSSubscribedResponse, WSUnsubscribedResponse, WSErrorResponse, WSPongResponse } from './dto/ws-messages.dto';
export declare class EventsGateway implements OnGatewayInit, OnGatewayConnection, OnGatewayDisconnect {
    private readonly authService;
    server: Server;
    private logger;
    constructor(authService: AuthService);
    afterInit(): void;
    handleConnection(client: Socket): Promise<void>;
    handleDisconnect(client: Socket): void;
    handleMessage(client: Socket, message: WSClientMessage): WSSubscribedResponse | WSUnsubscribedResponse | WSErrorResponse | WSPongResponse;
    private handleSubscribe;
    private handleUnsubscribe;
    private handlePing;
    private createError;
    private emitToRooms;
    emitSessionStatus(sessionId: string, status: string, data?: Record<string, unknown>): void;
    emitQRCode(sessionId: string, qrCode: string): void;
    emitMessage(sessionId: string, message: Record<string, unknown>): void;
    emitMessageSent(sessionId: string, message: Record<string, unknown>): void;
    emitMessageAck(sessionId: string, data: {
        messageId: string;
        ack: number;
        ackName: string;
    }): void;
    emitWebhookStatus(webhookId: string, success: boolean, error?: string): void;
}
