import { MqttMessage } from './mqtt.message'; import { IncomingListenMessage } from './mqtt.types'; export declare class MqttListener { private handlers; handleMessage(message: MqttMessage): Promise; addHandler>(handler: HandlerInfo): RemoveHandlerFn; } export declare type RemoveHandlerFn = () => void; export declare type HandlerFn = (message: T) => void; export declare type ValidatorFn> = (message: MqttMessage, params: Params) => boolean; export declare type TransformerFn> = (message: IncomingListenMessage) => TOut | Promise; export declare type MessageWithParams = Record> = MqttMessage & { params: T; }; export interface HandlerInfo> { topicFilter: string; paramMatcher?: string; validator?: ValidatorFn; transformer?: TransformerFn; handle: HandlerFn; }