import { DirectFileOutput, EgressInfo, EncodedFileOutput, EncodingOptions, EncodingOptionsPreset, SegmentedFileOutput, StreamOutput } from './proto/livekit_egress'; import ServiceBase from './ServiceBase'; export interface RoomCompositeOptions { /** * egress layout. optional */ layout?: string; /** * encoding options or preset. optional */ encodingOptions?: EncodingOptionsPreset | EncodingOptions; /** * record audio only. optional */ audioOnly?: boolean; /** * record video only. optional */ videoOnly?: boolean; /** * custom template url. optional */ customBaseUrl?: string; } export interface WebOptions { /** * encoding options or preset. optional */ encodingOptions?: EncodingOptionsPreset | EncodingOptions; /** * record audio only. optional */ audioOnly?: boolean; /** * record video only. optional */ videoOnly?: boolean; } export interface TrackCompositeOptions { /** * audio track ID */ audioTrackId?: string; /** * video track ID */ videoTrackId?: string; /** * encoding options or preset. optional */ encodingOptions?: EncodingOptionsPreset | EncodingOptions; } /** * Client to access Egress APIs */ export declare class EgressClient extends ServiceBase { private readonly rpc; /** * @param host hostname including protocol. i.e. 'https://cluster.livekit.io' * @param apiKey API Key, can be set in env var LIVEKIT_API_KEY * @param secret API Secret, can be set in env var LIVEKIT_API_SECRET */ constructor(host: string, apiKey?: string, secret?: string); /** * @param roomName room name * @param output file or stream output * @param opts RoomCompositeOptions */ startRoomCompositeEgress(roomName: string, output: EncodedFileOutput | SegmentedFileOutput | StreamOutput, opts?: RoomCompositeOptions): Promise; /** * @deprecated use RoomCompositeOptions instead */ startRoomCompositeEgress(roomName: string, output: EncodedFileOutput | SegmentedFileOutput | StreamOutput, layout?: string, options?: EncodingOptionsPreset | EncodingOptions, audioOnly?: boolean, videoOnly?: boolean, customBaseUrl?: string): Promise; /** * @param url url * @param output file or stream output * @param opts WebOptions */ startWebEgress(url: string, output: EncodedFileOutput | SegmentedFileOutput | StreamOutput, opts?: WebOptions): Promise; /** * @param roomName room name * @param output file or stream output * @param opts TrackCompositeOptions */ startTrackCompositeEgress(roomName: string, output: EncodedFileOutput | SegmentedFileOutput | StreamOutput, opts?: TrackCompositeOptions): Promise; /** * @deprecated use TrackCompositeOptions instead */ startTrackCompositeEgress(roomName: string, output: EncodedFileOutput | SegmentedFileOutput | StreamOutput, audioTrackId?: string, videoTrackId?: string, options?: EncodingOptionsPreset | EncodingOptions): Promise; private getOutputParams; /** * @param roomName room name * @param output file or websocket output * @param trackId track Id */ startTrackEgress(roomName: string, output: DirectFileOutput | string, trackId: string): Promise; /** * @param egressId * @param layout */ updateLayout(egressId: string, layout: string): Promise; /** * @param egressId * @param addOutputUrls * @param removeOutputUrls */ updateStream(egressId: string, addOutputUrls?: string[], removeOutputUrls?: string[]): Promise; /** * @param roomName list egress for one room only */ listEgress(roomName?: string): Promise>; /** * @param egressId */ stopEgress(egressId: string): Promise; }