import { ObservableValue } from "../../observable/value"; import type { ExponentialRetryDelay } from "./ExponentialRetryDelay"; import type { TimeMeasure } from "../../platform/web/dom/Clock.js"; import type { OnlineStatus } from "../../platform/web/dom/OnlineStatus.js"; import type { VersionResponse } from "./types/response"; import type { HomeServerApi } from "./HomeServerApi"; export declare enum ConnectionStatus { "Waiting" = 0, "Reconnecting" = 1, "Online" = 2 } type Ctor = { retryDelay: ExponentialRetryDelay; createMeasure: () => TimeMeasure; onlineStatus: OnlineStatus; }; export declare class Reconnector { private readonly _retryDelay; private readonly _createTimeMeasure; private readonly _onlineStatus; private readonly _state; private _isReconnecting; private _versionsResponse?; private _stateSince; constructor({ retryDelay, createMeasure, onlineStatus }: Ctor); get lastVersionsResponse(): VersionResponse | undefined; get connectionStatus(): ObservableValue; get retryIn(): number; onRequestFailed(hsApi: HomeServerApi): Promise; tryNow(): void; private _setState; private _reconnectLoop; } export declare function tests(): { "test reconnecting with 1 failure": (assert: any) => Promise; "test reconnecting with onlineStatus": (assert: any) => Promise; }; export {};