import { ChatMessage } from "@/types/chat";
export declare class WebSocketService {
    private url;
    private socket;
    private messageListeners;
    private connectionListeners;
    private reconnectInterval;
    private reconnectAttempts;
    private maxReconnectAttempts;
    private reconnectDelay;
    private receivedMessageIds;
    private roomCode;
    private appId;
    private userCode;
    private deleteMessageListeners;
    constructor(url: string);
    connect(roomCode: string, appId: string, userCode?: string): Promise<boolean>;
    disconnect(): void;
    getUrl(): string;
    getCurrentUserCode(): string | null;
    getCurrentRoomCode(): string | null;
    sendMessage(message: ChatMessage): void;
    addMessageListener(listener: (message: ChatMessage) => void): void;
    removeMessageListener(listener: (message: ChatMessage) => void): void;
    addConnectionListener(listener: (connected: boolean) => void): void;
    removeConnectionListener(listener: (connected: boolean) => void): void;
    addDeleteMessageListener(listener: (messageId: string) => void): void;
    removeDeleteMessageListener(listener: (messageId: string) => void): void;
    private notifyMessageListeners;
    private notifyConnectionListeners;
    private notifyDeleteMessageListeners;
    isConnected(): boolean;
}
export declare function setWebSocketUrl(url: string): void;
export declare function getWebSocketService(url?: string): WebSocketService;
