import { Message } from '@statechannels/client-api-schema'; import { Logger } from 'pino'; import { AbortController } from 'abort-controller'; import { TestPeerWallets } from '../../jest/with-peers-setup-teardown'; import { MessageHandler, MessageServiceInterface } from './types'; export declare type LatencyOptions = { /** * The mean delay to delay messages with. If undefined messages are not delayed * Otherwise each message is delayed by meanDelay / 2 + Math.random() * meanDelay); */ meanDelay?: number; /** * How frequently a message should be dropped. Can range from 0 (never dropped) to 1(always dropped) */ dropRate: number; }; /** * A basic message service that is responsible for sending and receiving messages for a collection of engines. * All the engines will share the same message service. * The message service is responsible for calling pushMessage on the appropriate engines. */ export declare class TestMessageService implements MessageServiceInterface { protected _logger?: Logger | undefined; private _handleMessages; private _sendMessage; private _options; private _frozen; private _messageQueue; protected _destroyed: boolean; readonly isTest = true; protected _abortController: AbortController; /** * Creates a test message service that can be used in tets * @param incomingMessageHandler The message handler to use * @param logger An optional logger for logging * @returns */ protected constructor(handleMessage: MessageHandler, _logger?: Logger | undefined); static setLatencyOptions(peerWallets: TestPeerWallets, options: Partial): void; static unfreeze(peerWallets: TestPeerWallets): void; static freeze(peerWallets: TestPeerWallets): void; static linkMessageServices(messageService1: MessageServiceInterface, messageService2: MessageServiceInterface, logger?: Logger): void; static create(incomingMessageHandler: MessageHandler, logger?: Logger): TestMessageService; freeze(): void; unfreeze(): Promise; setLatencyOptions(incomingOptions: Partial): void; registerPeer(_peerId: string): Promise; send(messages: Message[]): Promise; destroy(): Promise; } export declare function isTestMessageService(messageService: MessageServiceInterface): messageService is TestMessageService; //# sourceMappingURL=test-message-service.d.ts.map