import { EmberValue, RootElement, QualifiedElement, TreeElement, NumberedTreeNode, EmberTypedValue, Collection, Root } from '../../types/types.js'; import { InvocationResult } from '../../model/InvocationResult.js'; import { Matrix } from '../../model/Matrix.js'; import { EmberElement } from '../../model/EmberElement.js'; import { FieldFlags } from '../../model/Command.js'; import { Parameter } from '../../model/Parameter.js'; import { EventEmitter } from 'eventemitter3'; import { EmberFunction } from '../../model/EmberFunction.js'; export type RequestPromise = Promise>; export interface RequestPromiseArguments { sentOk: boolean; reqId?: string; cancel?: () => void; response?: Promise; } export declare enum ExpectResponse { None = "none", Any = "any", HasChildren = "has-children" } export interface Request { reqId: string; node: RootElement; nodeResponse: ExpectResponse; resolve: (res: any) => void; reject: (err: Error) => void; cb?: (EmberNode: TreeElement) => void; message: Buffer; firstSent: number; lastSent: number; } export interface Subscription { path: string | undefined; cb: (EmberNode: TreeElement) => void; } export interface Change { path: string | undefined; node: RootElement; emptyNode?: boolean; } export declare enum ConnectionStatus { Error = 0, Disconnected = 1, Connecting = 2, Connected = 3 } export type EmberClientEvents = { error: [Error]; warn: [Error]; connected: []; disconnected: []; streamUpdate: [path: string, value: EmberValue]; }; export interface EmberClientOptions { timeout?: number; enableResends?: boolean; resendTimeout?: number; reconnectAttempts?: number; getDirectoryOnParams?: boolean; } export declare class EmberClient extends EventEmitter { host: string; port: number; tree: Collection>; private _streamManager; private _requests; private _lastInvocation; private _client; private _subscriptions; private _timeout; private _resendTimeout; private _resends; private _timer; private _getDirectoryOnParams; private _reconnectAttempts; constructor(host: string, port?: number, options?: EmberClientOptions); /** * Opens an s101 socket to the provider. * @param host The host of the emberplus provider * @param port Port of the provider */ connect(host?: string, port?: number): Promise; /** * Closes the s101 socket to the provider */ disconnect(): Promise; /** * Discards any outgoing connections, removes all requests and clears any timing loops * * This is destructive, using this class after discarding will cause errors. */ discard(): void; get connected(): boolean; /** Ember+ commands: */ getDirectory(node: RootElement | Collection, dirFieldMask?: FieldFlags, cb?: (EmberNode: TreeElement) => void): RequestPromise; subscribe(node: RootElement | Array, cb?: (EmberNode: TreeElement) => void): RequestPromise; unsubscribe(node: NumberedTreeNode | Array): RequestPromise; invoke(node: NumberedTreeNode | QualifiedElement, ...args: Array): RequestPromise; /** Sending ember+ values */ setValue(node: QualifiedElement | NumberedTreeNode, value: EmberValue, awaitResponse?: boolean): RequestPromise>; matrixConnect(matrix: QualifiedElement | NumberedTreeNode, target: number, sources: Array): RequestPromise>; matrixDisconnect(matrix: QualifiedElement | NumberedTreeNode, target: number, sources: Array): RequestPromise>; matrixSetConnection(matrix: QualifiedElement | NumberedTreeNode, target: number, sources: Array): RequestPromise>; /** Getting the tree: */ expand(node: NumberedTreeNode | Collection): Promise; getElementByPath(path: string, cb?: (EmberNode: TreeElement) => void, delimiter?: string): Promise | undefined>; getInternalNodePath(node: TreeElement): string | undefined; private _matrixMutation; private _sendCommand; private _sendRequest; private _handleIncoming; private _applyRootToTree; private _updateTree; private _updateEmberNode; private _updateParameter; private _updateMatrix; private _resendTimer; } //# sourceMappingURL=index.d.ts.map