import { SignalApi, SignalSubscriber } from '@backstage/plugin-signals-react';
import { JsonObject } from '@backstage/types';
import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api';
/** @public */
export declare class SignalClient implements SignalApi {
    private identity;
    private discoveryApi;
    private connectTimeout;
    private reconnectTimeout;
    static readonly DEFAULT_CONNECT_TIMEOUT_MS: number;
    static readonly DEFAULT_RECONNECT_TIMEOUT_MS: number;
    private ws;
    private subscriptions;
    private messageQueue;
    private reconnectTo;
    static create(options: {
        identity: IdentityApi;
        discoveryApi: DiscoveryApi;
        connectTimeout?: number;
        reconnectTimeout?: number;
    }): SignalClient;
    private constructor();
    subscribe<TMessage extends JsonObject = JsonObject>(channel: string, onMessage: (message: TMessage) => void): SignalSubscriber;
    private send;
    private connect;
    private handleMessage;
    private reconnect;
}
