homebridge-shinobi
Version:
A Homebridge plugin integrating Shinobi for motion detector cameras
37 lines • 1.73 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
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<string, SessionInfo>;
ongoingSessions: Record<string, ChildProcess>;
constructor(platform: ShinobiHomebridgePlatform, hap: HAP, monitor: Monitor, config: PlatformConfig);
handleSnapshotRequest(request: SnapshotRequest, callback: SnapshotRequestCallback): void;
prepareStream(request: PrepareStreamRequest, callback: PrepareStreamCallback): Promise<void>;
handleStreamRequest(request: StreamingRequest, callback: StreamRequestCallback): Promise<void>;
shutdown(): Promise<void>;
shouldSubStreamBeActive(): boolean;
getSubStreamIsActive(): Promise<boolean>;
toggleSubStreamActive(subStreamShouldBeActive: any): Promise<void>;
setRequiredSubStreamState(): Promise<void>;
}
export {};
//# sourceMappingURL=shinobiStreamingDelegate.d.ts.map