import WebSocket from '../util/WebSocket';
import Base from '../Base';
import type Client from '../Client';
/**
 * Represents the client's EOS Connect STOMP manager (i.e. chat messages)
 */
declare class STOMP extends Base {
    /**
     * The STOMP websocket client
     */
    connection?: WebSocket;
    /**
     * The stomp connection id (i.e. used for eos presence)
     */
    connectionId?: string;
    /**
     * The stomp heartbeat interval
     */
    private pingInterval?;
    /**
     * The amount of times the stomp connection has been retried
     */
    private connectionRetryCount;
    /**
     * @param client The main client
     */
    constructor(client: Client);
    /**
     * Whether the internal websocket is connected
     */
    get isConnected(): boolean | undefined;
    /**
     * Connect to the STOMP server
     * @throws {AuthenticationMissingError} When there is no EOS auth to use for STOMP auth
     * @throws {STOMPConnectionError} When the connection failed for any reason
     */
    connect(): Promise<void>;
    /**
     * Registers the events for the STOMP connection
     */
    private registerEvents;
    /**
     * Disconnects the STOMP client.
     * Also performs a cleanup
     */
    disconnect(): Promise<void>;
    /**
     * Sends a message to the STOMP server
     * @param message The message to send
     */
    private sendMessage;
}
export default STOMP;
