import { JellyfishClient } from "./JellyfishClient";
export type ReconnectConfig = {
    maxAttempts?: number;
    initialDelay?: number;
    delay?: number;
    addTracksOnReconnect?: boolean;
};
export declare class ReconnectManager<PeerMetadata, TrackMetadata> {
    private readonly reconnectConfig;
    private readonly connect;
    private readonly client;
    private initialMetadata;
    private reconnectAttempt;
    private reconnectTimeoutId;
    private reconnectFailedNotificationSend;
    private ongoingReconnection;
    private lastLocalEndpoint;
    constructor(client: JellyfishClient<PeerMetadata, TrackMetadata>, connect: (metadata: PeerMetadata) => void, config?: ReconnectConfig | boolean);
    reset(initialMetadata: PeerMetadata): void;
    private getLastPeerMetadata;
    private reconnect;
    private handleReconnect;
}
export declare const createReconnectConfig: (config?: ReconnectConfig | boolean) => Required<ReconnectConfig>;
//# sourceMappingURL=reconnection.d.ts.map