///
///
import { ChildProcess } from 'child_process';
import { CameraController, CameraStreamingDelegate, HAP, PlatformConfig, PrepareStreamCallback, PrepareStreamRequest, SnapshotRequest, SnapshotRequestCallback, StreamingRequest, StreamRequestCallback } from 'homebridge';
import { ShinobiHomebridgePlatform } from './platform';
import { Monitor } from './shinobiMonitorAccessory';
declare type SessionInfo = {
address: string;
videoPort: number;
videoSRTP: Buffer;
videoSSRC: number;
};
/**
* Shinobi Camera Streaming Delegate
*/
export declare class ShinobiStreamingDelegate implements CameraStreamingDelegate {
private readonly platform;
private readonly hap;
private readonly monitor;
readonly config: PlatformConfig;
controller: CameraController | undefined;
private readonly imageSource;
private readonly videoSource;
pendingSessions: Record;
ongoingSessions: Record;
constructor(platform: ShinobiHomebridgePlatform, hap: HAP, monitor: Monitor, config: PlatformConfig);
handleSnapshotRequest(request: SnapshotRequest, callback: SnapshotRequestCallback): void;
prepareStream(request: PrepareStreamRequest, callback: PrepareStreamCallback): Promise;
handleStreamRequest(request: StreamingRequest, callback: StreamRequestCallback): Promise;
shutdown(): Promise;
shouldSubStreamBeActive(): boolean;
getSubStreamIsActive(): Promise;
toggleSubStreamActive(subStreamShouldBeActive: any): Promise;
setRequiredSubStreamState(): Promise;
}
export {};
//# sourceMappingURL=shinobiStreamingDelegate.d.ts.map