///
import { RingCamera, SipSession } from '../api';
import { HAP } from './hap';
import Service = HAP.Service;
interface HapRtpConfig {
port: number;
proxy_rtp: number;
proxy_rtcp: number;
srtp_key: Buffer;
srtp_salt: Buffer;
}
interface PrepareStreamRequest {
sessionID: Buffer;
targetAddress: string;
video: HapRtpConfig;
audio: HapRtpConfig;
}
interface HandleStreamRequest {
sessionID: Buffer;
type: 'start' | 'stop' | 'reconfigure';
video: {
profile: number;
level: number;
width: number;
height: number;
fps: number;
ssrc: number;
pt: number;
max_bit_rate: number;
rtcp_interval: number;
mtu: number;
};
audio: {
codec: 'AAC-eld' | string;
channel: number;
bit_rate: number;
sample_rate: number;
packet_time: number;
pt: number;
ssrc: number;
max_bit_rate: number;
rtcp_interval: number;
comfort_pt: number;
};
}
export declare class CameraSource {
private ringCamera;
private logger;
services: Service[];
streamControllers: any[];
sessions: {
[sessionKey: string]: SipSession;
};
constructor(ringCamera: RingCamera, logger: HAP.Log);
handleSnapshotRequest(request: {
width: number;
height: number;
}, callback: (err?: Error, snapshot?: Buffer) => void): Promise;
handleCloseConnection(connectionID: any): void;
prepareStream(request: PrepareStreamRequest, callback: (response: any) => void): Promise;
handleStreamRequest(request: HandleStreamRequest): void;
}
export {};