UNPKG

@emeraldpay/api

Version:
27 lines (26 loc) 1.12 kB
import { Publisher, RemoteCall } from './index'; export declare enum ConnectionStatus { PENDING = 0, CONNECTING = 1, CONNECTED = 2, ERRORED = 3, CLOSED = 4 } export declare enum ConnectivityState { IDLE = 0, CONNECTING = 1, READY = 2, TRANSIENT_FAILURE = 3, SHUTDOWN = 4 } export type ConnectionListener = (status: ConnectionStatus) => void; export type StateListener = (error: Error | undefined, state: ConnectivityState) => void; export declare function asStatus(state: ConnectivityState | number): ConnectionStatus; export interface Channel { getState(): ConnectivityState; watch(current: ConnectivityState, deadline: number, handler: StateListener): any; } export declare function isChannel(channel: unknown): channel is Channel; export declare function alwaysRetry<T, R>(channel: Channel, call: RemoteCall<R, T>, request: R, retries: number): Publisher<T>; export declare function readOnce<T, R>(channel: Channel, call: RemoteCall<R, T>, request: R, retries: number): Publisher<T>; export declare function asStateListener(listener: ConnectionListener): StateListener;