import type { CameraRecordingConfiguration, CameraRecordingDelegate, RecordingPacket } from "homebridge";
import { HDSProtocolSpecificErrorReason } from "homebridge-plugin-utils";
import type { Nullable } from "homebridge-plugin-utils";
import type { ProtectTimeshiftBuffer } from "./timeshift.ts";
import type { ProtectCameraHost } from "./camera-host.ts";
import type { ProtectTimeshiftSupervisor } from "./timeshift-supervisor.ts";
export declare class ProtectRecordingDelegate implements CameraRecordingDelegate {
    private _isRecording;
    private _isTransmitting;
    private abortController?;
    private readonly accessory;
    private readonly api;
    private readonly clock;
    private ffmpegStream?;
    private readonly hap;
    private lastStreamId;
    private readonly log;
    private nextEventId;
    private readonly protectCamera;
    private recordingConfig?;
    private segmentWriter?;
    private session;
    private readonly supervisor;
    readonly timeshift: ProtectTimeshiftBuffer;
    private transmitListener?;
    constructor(protectCamera: ProtectCameraHost, supervisor: ProtectTimeshiftSupervisor);
    updateRecordingActive(active: boolean): void;
    private applyRecordingActive;
    updateRecordingConfiguration(configuration: CameraRecordingConfiguration | undefined): void;
    handleRecordingStreamRequest(_streamId: number, signal: AbortSignal): AsyncGenerator<RecordingPacket>;
    acknowledgeStream(): void;
    closeRecordingStream(streamId: number, reason?: HDSProtocolSpecificErrorReason): void;
    configureTimeshifting(): Promise<boolean>;
    private startTransmitting;
    private paceSegmentDelivery;
    private reserveTelemetry;
    private stopTransmitting;
    get isAudioActive(): boolean;
    get isTransmitting(): boolean;
    get isRecording(): boolean;
    get recordingConfiguration(): Nullable<CameraRecordingConfiguration>;
}
//# sourceMappingURL=record.d.ts.map