/**
 * @class
 * Handles the socket connection
 * Also dispatch the action to handle data
 */
declare abstract class MessageService {
    /** @property unique id to identify instance of message service */
    id: string;
    /**
     * @method
     * Create a connection with socketIO
     */
    connect(_data: unknown): void;
    /**
     * @method
     * Dispose the socket connection
     */
    disconnect(_data: unknown): void;
    /**
     * @method
     * Handle the messages
     */
    protected message(data: unknown): void;
}

export { MessageService as default };
