import { RingCamera } from '../api';
import { CameraStreamingDelegate, PrepareStreamCallback, PrepareStreamRequest, SnapshotRequest, SnapshotRequestCallback, StreamingRequest, StreamRequestCallback } from 'homebridge';
export declare class CameraSource implements CameraStreamingDelegate {
    private ringCamera;
    controller: import("homebridge").CameraController;
    private sessions;
    private cachedSnapshot?;
    constructor(ringCamera: RingCamera);
    private previousLoadSnapshotPromise?;
    loadSnapshot(): Promise<any>;
    private loadAndCacheSnapshot;
    private getCurrentSnapshot;
    handleSnapshotRequest(request: SnapshotRequest, callback: SnapshotRequestCallback): Promise<void>;
    prepareStream(request: PrepareStreamRequest, callback: PrepareStreamCallback): Promise<void>;
    handleStreamRequest(request: StreamingRequest, callback: StreamRequestCallback): Promise<void>;
}
