import { BaseAccessory, CharacteristicType, ServiceType } from './base-accessory';
import { RingCamera, RingChime, RingDevice } from '../api';
import { RingPlatformConfig } from './config';
import { Logging, PlatformAccessory } from 'homebridge';
export declare abstract class BaseDataAccessory<T extends RingDevice | RingCamera | RingChime> extends BaseAccessory<T> {
    abstract readonly device: T;
    abstract readonly accessory: PlatformAccessory;
    abstract readonly logger: Logging;
    abstract readonly config: RingPlatformConfig;
    registerCharacteristic({ characteristicType, serviceType, getValue, setValue, setValueDebounceTime, name, requestUpdate, serviceSubType, }: {
        characteristicType: CharacteristicType;
        serviceType: ServiceType;
        serviceSubType?: string;
        name?: string;
        getValue: (data: T['data']) => any;
        setValue?: (data: any) => any;
        setValueDebounceTime?: number;
        requestUpdate?: () => any;
    }): void;
    registerLevelCharacteristic({ characteristicType, serviceType, getValue, setValue, requestUpdate, }: {
        characteristicType: CharacteristicType;
        serviceType: ServiceType;
        getValue: (data: T['data']) => number;
        setValue: (data: any) => any;
        requestUpdate?: () => any;
    }): void;
}
