import { Monitor } from '@neo-one/monitor-esnext-esm'; import { Binary, DescribeTable } from '@neo-one/server-plugin-esnext-esm'; import { Observable } from 'rxjs'; import { NodeSettings } from '../types'; export interface Node { readonly name: string; readonly live: boolean; readonly ready: boolean; readonly rpcAddress: string; readonly tcpAddress: string; readonly telemetryAddress: string; } export interface NodeStatus { readonly rpcAddress: string; readonly tcpAddress: string; readonly telemetryAddress: string; } export declare abstract class NodeAdapter { readonly name: string; readonly node$: Observable; protected readonly binary: Binary; protected readonly dataPath: string; protected readonly monitor: Monitor; protected mutableSettings: NodeSettings; constructor({ monitor, name, binary, dataPath, settings, }: { readonly monitor: Monitor; readonly name: string; readonly binary: Binary; readonly dataPath: string; readonly settings: NodeSettings; }); getDebug(): DescribeTable; create(): Promise; update(settings: NodeSettings): Promise; start(): Promise; stop(): Promise; abstract getNodeStatus(): NodeStatus; live(timeoutSeconds: number): Promise; ready(timeoutSeconds: number): Promise; protected abstract isLive(): Promise; protected abstract isReady(): Promise; protected abstract createInternal(): Promise; protected abstract updateInternal(_settings: NodeSettings): Promise; protected abstract startInternal(): Promise; protected abstract stopInternal(): Promise; }