import { PlatformAccessory, CharacteristicValue } from 'homebridge';
import { EufySecurityPlatform } from '../platform';
import { DeviceAccessory } from './Device';
import { Camera, PropertyName } from '@spectralblu/eufy-security-client';
import { StreamingDelegate } from '../controller/streamingDelegate';
import { CameraConfig } from '../utils/configTypes';
/**
 * Platform Accessory
 * An instance of this class is created for each accessory your platform registers
 * Each accessory may expose multiple services of different service types.
 */
export declare class CameraAccessory extends DeviceAccessory {
    protected cameraStatus: {
        isEnabled: boolean;
        timestamp: number;
    };
    private notificationTimeout;
    readonly cameraConfig: CameraConfig;
    protected streamingDelegate: StreamingDelegate | null;
    private eventTypesToHandle;
    constructor(platform: EufySecurityPlatform, accessory: PlatformAccessory, device: Camera);
    private setupCamera;
    private setupButtonService;
    protected setupSwitchService(serviceName: string, serviceType: 'switch' | 'lightbulb' | 'outlet', propertyName: PropertyName): void;
    private setupEnableButton;
    private setupMotionButton;
    private setupLightButton;
    private setupChimeButton;
    private getCameraConfig;
    private cameraFunction;
    private setupMotionFunction;
    protected getCameraPropertyValue(characteristic: any, propertyName: PropertyName): CharacteristicValue;
    protected setCameraPropertyValue(characteristic: any, propertyName: PropertyName, value: CharacteristicValue): Promise<void>;
    /**
     * Handle push notifications for a doorbell device.
     * Mute subsequent notifications within a timeout period.
     * @param characteristic - The Characteristic to update for HomeKit.
     */
    private onDeviceRingsPushNotification;
}
//# sourceMappingURL=CameraAccessory.d.ts.map