import { AgoraRteMediaSourceState, AgoraRteVideoSourceType } from '../../type'; import { AgoraRteObservableTrack, AgoraRteScreenCaptureParams, AgoraRteScreenCaptureType, AgoraRteScreenTrackObserver, AgoraRteVideoRenderConfig } from './type'; /** * Interface for a screen video track in Agora RTE SDK. */ export interface AgoraRteScreenTrack extends AgoraRteObservableTrack { /** * Gets the device ID of the screen. * @returns The device ID of the screen. */ getSourceId(): string; /** * Gets the current state of the screen. * @returns The current state of the screen. */ getState(): AgoraRteMediaSourceState; /** * Gets the video source type. * @returns The video source type. */ getVideoSourceType(): AgoraRteVideoSourceType; /** * Sets the capture parameters for the screen. * @param params The parameters for the video capture. */ startPreview(config: AgoraRteVideoRenderConfig, view: unknown): number; /** * Stops the screen video track for the specified source. * @returns A promise that resolves when the stop is successful. */ stopPreview(): number; /** * Sets the capture parameters for the screen. * @param params The parameters for the video capture. */ setCaptureParams(params: AgoraRteScreenCaptureParams): number; /** * Starts the screen video track with the specified type and parameters. * @param type The type of screen capture. * @param excludeWindowList The list of window IDs to exclude from the screen capture. * @returns A promise that resolves when the start is successful. */ start(type: AgoraRteScreenCaptureType, excludeWindowList: string[]): number; /** * Stops the screen video track for the specified source. * @param type The type of screen capture. * @returns A promise that resolves when the stop is successful. */ stop(): number; /** * Updates the screen capture exclude window list. * @param excludeWindowList The list of window to exclude from the screen capture. * @returns number * 0: success * < 0: failure */ updateExcludeWindows(excludeWindowList: string[]): number; }