import { RtspRequest, RtspResponse, RtspServer } from 'rtsp-server'; import { Mount } from './Mount'; import { Mounts } from './Mounts'; export interface PublishServerHooksConfig { authentication?: (username: string, password: string, req: RtspRequest, res: RtspResponse) => Promise; checkMount?: (req: RtspRequest) => Promise; mountNowEmpty?: (mount: Mount) => Promise; } /** * */ export declare class PublishServer { hooks: PublishServerHooksConfig; mounts: Mounts; rtspPort: number; server: RtspServer; authenticatedHeader?: string; /** * * @param rtspPort * @param mounts */ constructor(rtspPort: number, mounts: Mounts, hooks?: PublishServerHooksConfig); /** * */ start(): Promise; /** * * @param req * @param res */ optionsRequest(req: RtspRequest, res: RtspResponse): void; /** * * @param req * @param res */ announceRequest(req: RtspRequest, res: RtspResponse): Promise; /** * * @param req * @param res */ setupRequest(req: RtspRequest, res: RtspResponse): void; /** * * @param req * @param res */ recordRequest(req: RtspRequest, res: RtspResponse): Promise; /** * * @param req * @param res */ teardownRequest(req: RtspRequest, res: RtspResponse): void; /** * * @param req * @param res */ private checkAuthenticated; }