/// <reference types="node" />
import { device } from 'aws-iot-device-sdk';
import { ISensor } from './sensors/Sensor';
import { AppMessage } from './app/appMessage';
export declare type SendMessage = (timestamp: number, message: AppMessage) => void;
export declare type DeviceConfig = {
    deviceId: string;
    caCert: Buffer | string;
    clientCert: Buffer | string;
    privateKey: Buffer | string;
    endpoint: string;
    appFwVersion: string;
    mqttMessagesPrefix: string;
};
export declare const nrfdevice: (config: DeviceConfig, sensors: Map<string, ISensor>, onConnect?: ((deviceId: string, client: device) => void) | undefined) => {
    subscribe: (topic: string) => Promise<unknown>;
    publish: (topic: string, payload: object) => Promise<void>;
    registerListener: (topic: string, callback: (args: {
        topic: string;
        payload: any;
    }) => void) => void;
    unregisterListener: (topic: string) => void;
    run: (args: {
        appFwVersion: string;
    }) => Promise<void>;
};
