type MessageListener<T = unknown> = (data: T) => void;
declare class WebSocketManager {
    private static instance;
    private centrifuge;
    private listeners;
    private subscriptions;
    private constructor();
    static getInstance(): WebSocketManager;
    private initialize;
    private connect;
    subscribe<T>(type: string, listener: MessageListener<T>): Promise<() => void>;
    unsubscribe(type: string, listener: MessageListener<unknown>): void;
    send(type: string, payload: unknown): void;
    isConnected(): boolean;
    waitForConnection(): Promise<void>;
}
export default WebSocketManager;
