import { AgoraRtcAudioSourceType, AgoraRtcChannelPublisherObserver, AgoraRtcScreenScenarioType, AgoraRtcStreamLayer, AgoraRtcVideoEncoderConfiguration, AgoraRtcVideoSourceType } from './type'; /** * Interface for RTC channel publisher. * Manages local stream publishing operations. */ export interface AgoraRtcChannelPublisher { /** * Publishes a local video stream. * @param token The token for authentication. * @param streamId The ID of the stream. * @param sourceId The ID of the source. * @param type The type of the stream. * @param streamLayerBitMask Bit mask for stream layers. * @returns The result of the operation. */ publishLocalVideoStream(token: string | undefined, streamId: string, sourceId: string, type: AgoraRtcVideoSourceType, streamLayerBitMask: number): number; /** * Unpublishes a local video stream. * @param streamId The ID of the stream. * @param type The type of the stream. * @returns The result of the operation. */ unpublishLocalVideoStream(streamId: string, type: AgoraRtcVideoSourceType): number; /** * Publishes a local audio stream. * @param token The token for authentication. * @param streamId The ID of the stream. * @param sourceId The ID of the source. * @param type The type of the stream. * @returns The result of the operation. */ publishLocalAudioStream(token: string | undefined, streamId: string, sourceId: string, type: AgoraRtcAudioSourceType): number; /** * Unpublishes a local audio stream. * @param streamId The ID of the stream. * @param type The type of the stream. * @returns The result of the operation. */ unpublishLocalAudioStream(streamId: string, type: AgoraRtcAudioSourceType): number; /** * Pause all local streams. */ pause(): void; /** * Resume all local streams. */ resume(): void; /** * Set video encoder configuration. * @param config Encoder configuration. * @param streamLayer Stream layer (HIGH or LOW). * @param streamId The ID of the stream. * @returns The result of the operation. */ setVideoEncoderConfig(config: AgoraRtcVideoEncoderConfiguration, streamLayer: AgoraRtcStreamLayer, streamId: string): number; /** * Get video encoder configuration. * @param streamLayer Stream layer (HIGH or LOW). * @param streamId The ID of the stream. * @returns The encoder configuration. */ getVideoEncoderConfig(streamLayer: AgoraRtcStreamLayer, streamId: string): AgoraRtcVideoEncoderConfiguration; /** * Set dual stream mode. * @param streamId The ID of the stream. * @param enable Whether to enable dual stream mode. * @returns The result of the operation. */ setDualStreamMode(streamId: string, enable: boolean): number; /** * Set screen capture scenario. * @param type The type of the scenario. * @returns The result of the operation. */ setScreenScenario(type: AgoraRtcScreenScenarioType): number; /** * Adjust video profile based on stream layer bit mask. * @param streamId The ID of the stream. */ adjustVideoProfileByStreamLayer(streamId: string): void; /** * Release all resources. */ release(): void; /** * Add observer for publisher events. * @param observer The observer to add. */ addObserver(observer: AgoraRtcChannelPublisherObserver): void; /** * Remove observer for publisher events. * @param observer The observer to remove. */ removeObserver(observer: AgoraRtcChannelPublisherObserver): void; }