import type { CameraRecordingConfiguration, CameraRecordingDelegate, RecordingPacket } from "homebridge";
import { type Nullable } from "homebridge-plugin-utils";
import type { ProtectCamera, RtspEntry } from "./devices/index.js";
import { HDSProtocolSpecificErrorReason } from "homebridge";
import { ProtectTimeshiftBuffer } from "./protect-timeshift.js";
export declare class ProtectRecordingDelegate implements CameraRecordingDelegate {
    private _isRecording;
    private readonly accessory;
    private readonly api;
    private closedReason?;
    private readonly hap;
    private ffmpegStream?;
    private hksvRequestedClose;
    private isInitialized;
    private isTransmitting;
    private readonly log;
    private nvr;
    private readonly protectCamera;
    private recordingConfig?;
    rtspEntry: Nullable<RtspEntry>;
    readonly timeshift: ProtectTimeshiftBuffer;
    private timeshiftedSegments;
    private transmitListener?;
    private transmittedSegments;
    constructor(protectCamera: ProtectCamera);
    updateRecordingActive(active: boolean): Promise<void>;
    updateRecordingConfiguration(configuration: CameraRecordingConfiguration | undefined): void;
    handleRecordingStreamRequest(): AsyncGenerator<RecordingPacket>;
    acknowledgeStream(): void;
    closeRecordingStream(streamId: number, reason?: HDSProtocolSpecificErrorReason): void;
    private configureTimeshifting;
    private startTransmitting;
    private stopTransmitting;
    get isAudioActive(): boolean;
    get isRecording(): boolean;
    get recordingConfiguration(): Nullable<CameraRecordingConfiguration>;
}
