import type { CameraController, PrepareStreamCallback, PrepareStreamRequest, SnapshotRequest, SnapshotRequestCallback, StreamRequestCallback, StreamingRequest } from "homebridge";
import { FfmpegOptions, type HomebridgePluginLogging, type HomebridgeStreamingDelegate, type Nullable } from "homebridge-plugin-utils";
import type { ProtectCamera } from "./devices/index.js";
import type { ProtectPlatform } from "./protect-platform.js";
import { ProtectRecordingDelegate } from "./protect-record.js";
export declare class ProtectStreamingDelegate implements HomebridgeStreamingDelegate {
    private readonly api;
    controller: CameraController;
    readonly ffmpegOptions: FfmpegOptions;
    private readonly hap;
    hksv: Nullable<ProtectRecordingDelegate>;
    readonly log: HomebridgePluginLogging;
    private readonly nvr;
    private ongoingSessions;
    private pendingSessions;
    readonly platform: ProtectPlatform;
    readonly protectCamera: ProtectCamera;
    private probesizeOverride;
    private probesizeOverrideCount;
    private probesizeOverrideTimeout?;
    private snapshot;
    verboseFfmpeg: boolean;
    private abTest;
    constructor(protectCamera: ProtectCamera, resolutions: [number, number, number][]);
    handleSnapshotRequest(request?: SnapshotRequest, callback?: SnapshotRequestCallback): Promise<void>;
    prepareStream(request: PrepareStreamRequest, callback: PrepareStreamCallback): Promise<void>;
    private startStream;
    handleStreamRequest(request: StreamingRequest, callback: StreamRequestCallback): Promise<void>;
    stopStream(sessionId: string): void;
    shutdown(): void;
    ffmpegErrorCheck(stderrLog: string[]): string | undefined;
    adjustProbeSize(): void;
    get probesize(): number;
}
