import * as console from 'console'; import { ManagedPublisher, Publisher } from './Publisher'; import { ContinueCheck } from './Retry'; export type RemoteCall = (request: T) => Publisher; export interface MethodExecutor { connected(): void; cancel(): void; execute(reconnect: () => void): void; terminate(): void; } export declare function isMethodExecutor(executor: unknown): executor is MethodExecutor; type Logger = typeof console | undefined; export declare class Executor extends ManagedPublisher implements MethodExecutor { private readonly call; private readonly request; private connections; private checker; private logger; private upstream; constructor(call: RemoteCall, checker: ContinueCheck, request: T); setLogger(logger: Logger | undefined): void; cancel(): void; execute(reconnect: () => void): void; terminate(): void; } export {};