import { ChannelConfiguration, IChannel, ISensor, Profile } from '../types';
export declare abstract class SensorState {
    constructor(deviceID: number);
    DeviceID: number;
    ManId?: number;
    SerialNumber?: number;
    HwVersion?: number;
    SwVersion?: number;
    ModelNum?: number;
    BatteryLevel?: number;
    BatteryVoltage?: number;
    BatteryStatus?: 'New' | 'Good' | 'Ok' | 'Low' | 'Critical' | 'Invalid' | 'Reserved (0)' | 'Reserved (6)';
    _RawData?: Buffer;
    Channel?: number;
    Rssi?: number;
    Threshold?: number;
}
export default abstract class Sensor implements ISensor {
    protected deviceID: number;
    protected channel: IChannel;
    protected sendTimeout: number;
    constructor(deviceID?: number, channel?: IChannel);
    getChannel(): IChannel;
    setChannel(channel: IChannel): void;
    getDeviceID(): number;
    setSendTimeout(ms: number): void;
    getSendTimeout(): number;
    abstract getProfile(): Profile;
    abstract getDeviceType(): number;
    abstract getChannelConfiguration(): ChannelConfiguration;
    abstract onMessage(data: Buffer): void;
    abstract onEvent(data: Buffer): void;
}
