import { RtspRequest, RtspResponse, RtspServer } from 'rtsp-server'; import { ClientWrapper } from './ClientWrapper'; import { Mount } from './Mount'; import { Mounts } from './Mounts'; export interface ClientServerHooksConfig { authentication?: (username: string, password: string, req: RtspRequest, res: RtspResponse) => Promise; checkMount?: (req: RtspRequest) => Promise; clientClose?: (mount: Mount) => Promise; } /** * */ export declare class ClientServer { hooks: ClientServerHooksConfig; mounts: Mounts; rtspPort: number; server: RtspServer; clients: { [sessionId: string]: ClientWrapper; }; /** * * @param rtspPort * @param mounts */ constructor(rtspPort: number, mounts: Mounts, hooks?: ClientServerHooksConfig); start(): Promise; /** * * @param req * @param res */ optionsRequest(req: RtspRequest, res: RtspResponse): Promise; /** * * @param req * @param res */ describeRequest(req: RtspRequest, res: RtspResponse): Promise; /** * * @param req * @param res */ setupRequest(req: RtspRequest, res: RtspResponse): Promise; /** * * @param req * @param res */ playRequest(req: RtspRequest, res: RtspResponse): Promise; /** * * @param req * @param res */ teardownRequest(req: RtspRequest, res: RtspResponse): Promise; /** * * @param clientId */ clientGone(clientId: string): Promise; /** * * @param req * @param res */ private checkAuthenticated; }