import { ITypedEvent } from "../TypedEvent"; import { IDataFrame } from "../DataFrame"; import { IDIService } from "../IDIService"; export interface IExalusConnectionService extends IDIService { SetServersBrokerAddress(address: string): void; SetDefaultPacketsBrokerAddress(address: string): void; GetServerAddressAsync(): Promise; GetConnectedBrokerInfoAsync(timeoutMs?: number | null): Promise; ConnectAsync(address: string): Promise; AuthorizeAsync(authorizationInfo: AuthorizationInfo): Promise; ConnectAndAuthorizeAsync(authorizationInfo: AuthorizationInfo): Promise; DisconnectAsync(): Promise; IsConnected(): boolean; EnablePacketsLogging(): void; DisablePacketsLogging(): void; SendAsync(dataFrame: IDataFrame): Promise; SendAndWaitForResponseAsync(dataFrame: IDataFrame, timeout: number, useCache: boolean): Promise>; SendAndWaitForResponseAsync(dataFrame: IDataFrame, timeout: number, useCache: boolean, logTransmission: boolean): Promise>; SendAndHandleResponseAsync(dataFrame: IDataFrame, timeout: number, dataHandler: (result: IDataFrame) => void, logTransmission: boolean): Promise; SendAndHandleStreamAsync(dataFrame: IDataFrame, streamHandler: StreamHandler, logTransmission: boolean): Promise; OnDataReceivedEvent(): ITypedEvent>; SubscribeTo(resourceId: string, handler: { (data: IDataFrame): void; }): () => void; OnErrorOccuredEvent(): ITypedEvent<[sender: string, data: string]>; OnConnectionStateChangedEvent(): ITypedEvent; GetAuthorizationInfo(): AuthorizationInfo | null; } export declare class AuthorizationInfo { serialNumber: string; pin: string; constructor(serialNumber: string, pin: string); SerialNumber: string; PIN: string; } export declare enum ConnectionType { ByCloud = 0, LocalNetwork = 1, P2P = 2 } export declare enum ConnectionResult { FailedToConnect = 0, AuthorizationFailed = 1, FailedToConnectToServer = 2, Connected = 3, ControllerIsNotConnected = 4 } export declare enum ConnectionState { Disconnected = 0, Connecting = 1, Connected = 3, Disconnecting = 4, Failed = 5, Reconnecting = 6, ConnectedAndAuthorized = 7 } export declare class BrokerInfo { BrokerUrl: string; BrokerControllerUrl: string | undefined; Env: BrokerEnvironment; constructor(BrokerUrl: string, BrokerControllerUrl: string | undefined, Env?: BrokerEnvironment); } export declare enum BrokerEnvironment { Production = 0, Development = 1, Local = 2 } export type StreamHandler = { Next: (item: T) => void; Complete: () => void; Error: (err: any) => void; }; export declare class StreamError extends Error { constructor(message: string); }