import { EncryptionAlgo, TapClientInterface, TapRequestFrame, TapResponseFrame } from '@iotize/tap/client/api'; import { TapClient } from '@iotize/tap/client/impl'; import { Observable, Subject } from 'rxjs'; import { Predicate } from './definitions'; import { MockRouter } from './mock-router'; /** * Mock client options to configure fake delay for connect/disconnect and send operations */ export interface MappingType { [key: string]: TapResponseFrame; } export type TapRequestFilter = Predicate | ((request: TapRequestFrame) => boolean); export declare function createMockClient(options?: { connected?: boolean; }): MockClient; export declare namespace MockClient { interface InstanceOptions { isConnected: boolean; connect: { delay: number; }; disconnect: { delay: number; }; command: { delay: number; timeout: number; }; encryption: boolean; } } export declare class MockClient extends TapClient implements TapClientInterface { router: MockRouter; static DEFAULT_OPTIONS: MockClient.InstanceOptions; input: Subject; output: Subject; options: MockClient.InstanceOptions; isConnected(): boolean; encryptionAlgo?: EncryptionAlgo; constructor(options?: Partial, router?: MockRouter); static createWithMockProtocol(): MockClient; connect(): Observable; disconnect(): Observable; mockResponse(tapResponse: TapResponseFrame): void; request(request: TapRequestFrame): Observable; protected computeResponse(cmd: TapRequestFrame): TapResponseFrame; }