import type { AxiosResponse } from 'axios';
import type { APIErrorResponse } from './types';
import type { ConnectionErrorEvent } from '../../gen/coordinator';
export declare const sleep: (m: number) => Promise<unknown>;
export declare const timeboxed: <T extends Promise<unknown>[]>(promises: [...T], ms: number) => Promise<{ [K in keyof T]: Awaited<T[K]>; }>;
export declare function isFunction<T>(value: Function | T): value is Function;
/**
 * A map of known error codes.
 */
export declare const KnownCodes: {
    TOKEN_EXPIRED: number;
    WS_CLOSED_SUCCESS: number;
};
/**
 * retryInterval - A retry interval which increases acc to number of failures
 *
 * @return {number} Duration to wait in milliseconds
 */
export declare function retryInterval(numberOfFailures: number): number;
export declare function generateUUIDv4(): string;
/**
 * listenForConnectionChanges - Adds an event listener fired on browser going online or offline
 */
export declare function addConnectionEventListeners(cb: (e: Event) => void): void;
export declare function removeConnectionEventListeners(cb: (e: Event) => void): void;
export declare function isErrorResponse(res: AxiosResponse<unknown>): res is AxiosResponse<APIErrorResponse>;
export declare function isCloseEvent(res: CloseEvent | ConnectionErrorEvent): res is CloseEvent;
