import { Observable } from 'rxjs';
import { HubType } from '../../constants';
import type { HubPropertyInboundMessage, ILogger, VersionInformation } from '../../types';
import { IHubPropertiesFeature, IOutboundMessenger } from '../../hub';
import { IHubPropertiesMessageFactory } from './i-hub-properties-message-factory';
import { IHubPropertiesFeatureErrorsFactory } from './i-hub-properties-feature-errors-factory';
export declare class HubPropertiesFeature implements IHubPropertiesFeature {
    private readonly messageFactoryService;
    private readonly messenger;
    private readonly logging;
    private readonly inboundMessages;
    private readonly errorsFactory;
    private readonly onDisconnected$;
    batteryLevel: Observable<number>;
    rssiLevel: Observable<number>;
    buttonState: Observable<boolean>;
    private readonly characteristicUnsubscribeHandlers;
    constructor(messageFactoryService: IHubPropertiesMessageFactory, messenger: IOutboundMessenger, logging: ILogger, inboundMessages: Observable<HubPropertyInboundMessage>, errorsFactory: IHubPropertiesFeatureErrorsFactory, onDisconnected$: Observable<void>);
    setHubAdvertisingName(advertisingName: string): Observable<void>;
    getAdvertisingName(): Observable<string>;
    getBatteryLevel(): Observable<number>;
    getButtonState(): Observable<boolean>;
    getPrimaryMacAddress(): Observable<string>;
    getRSSILevel(): Observable<number>;
    getSystemTypeId(): Observable<HubType>;
    getManufacturerName(): Observable<string>;
    getFirmwareVersion(): Observable<VersionInformation>;
    getHardwareVersion(): Observable<VersionInformation>;
    private sendSubscribeMessage;
    private createPropertyStream;
}
