import type { IRtcEngineEx } from 'shengwang-electron-sdk'; import { AgoraObservable } from 'agora-foundation/lib/utilities/observable'; import type { AgoraRtcChannelPublisher } from '../../../core/rtc/publisher'; import { AgoraRtcSourceManager } from '../../../core/rtc/source-manager'; import { AgoraRtcAudioSourceType, AgoraRtcConnection, AgoraRtcLatencyLevelType, AgoraRtcMediaSourceState, AgoraRtcScreenScenarioType, AgoraRtcStreamLayer, AgoraRtcVideoEncoderConfiguration, AgoraRtcVideoSourceType, AgoraRtcChannelPublisherObserver, AgoraRtcChannelType } from '../../../core/rtc/type'; import { AgoraElectronRtcStreamPublishPoolImpl } from './publish-pool'; import { AgoraElectronRtcChannelPublisherInitConfig } from './type'; export declare class AgoraRtcChannelPublisherImpl implements AgoraRtcChannelPublisher { private _rtcEngine; protected logger: import("agora-foundation/lib/logger").Logger; protected observable: AgoraObservable; protected videoEncoderConfigs: Map; protected screenScenario: AgoraRtcScreenScenarioType; protected latencyLevel: AgoraRtcLatencyLevelType; protected streamLayerBitMaskMap: Map; protected publishPool: AgoraElectronRtcStreamPublishPoolImpl; protected sourceManager: AgoraRtcSourceManager; private _connectionMapHandleLocalVideoStats; private _loopbackConnection; private _loopbackDeviceId; private _isLoopbackEnabled; private _joinSuccessCallback?; private _defaultCameraHighVideoEncoderConfig; private _defaultCameraLowVideoEncoderConfig; private _defaultScreenVideoEncoderConfig; private _defaultCameraStreamConfig; private _defaultScreenStreamConfig; private _screenCaptureDeviceTypeMap; private _videoStreamConfigs; private _sourceManagerObserver; private _createHandleLocalVideoStats; private _publishPoolObserver; constructor(_rtcEngine: IRtcEngineEx, mainConnection: AgoraRtcConnection, latencyLevel: AgoraRtcLatencyLevelType, channelType: AgoraRtcChannelType | undefined, sourceManager: AgoraRtcSourceManager, config: AgoraElectronRtcChannelPublisherInitConfig); release(): number; /** * Publishes a local video stream. */ publishLocalVideoStream(token: string | undefined, streamId: string, sourceId: string, type: AgoraRtcVideoSourceType, streamLayerBitMask: number): number; /** * Unpublishes a local video stream. */ unpublishLocalVideoStream(streamId: string, type: AgoraRtcVideoSourceType): number; /** * Publishes a local audio stream. */ publishLocalAudioStream(token: string | undefined, streamId: string, sourceId: string, type: AgoraRtcAudioSourceType): number; /** * Unpublishes a local audio stream. */ unpublishLocalAudioStream(streamId: string, type: AgoraRtcAudioSourceType): number; /** * pause all local streams. */ pause(): void; /** * resume all local streams. */ resume(): void; /** * Adjusts video profile based on stream layer bit mask. */ adjustVideoProfileByStreamLayer(streamId: string): void; addObserver(observer: AgoraRtcChannelPublisherObserver): void; removeObserver(observer: AgoraRtcChannelPublisherObserver): void; protected _getCameraState(sourceId: string): AgoraRtcMediaSourceState; protected _getScreenCaptureState(sourceId: string): AgoraRtcMediaSourceState; protected _getMicrophoneState(sourceId: string): AgoraRtcMediaSourceState; protected _getLoopbackState(sourceId: string): AgoraRtcMediaSourceState; setVideoEncoderConfig(config: AgoraRtcVideoEncoderConfiguration, streamLayer: AgoraRtcStreamLayer, streamId: string): number; protected _internalSetVideoEncoderConfig(config: AgoraRtcVideoEncoderConfiguration, streamLayer: AgoraRtcStreamLayer, streamId: string): number; private _getVideoStreamConfig; setDualStreamMode(streamId: string, enable: boolean): number; setScreenScenario(type: AgoraRtcScreenScenarioType): number; getVideoEncoderConfig(streamLayer: AgoraRtcStreamLayer, streamId: string): AgoraRtcVideoEncoderConfiguration; /** * Private Methods */ private _addListeners; private _removeListeners; private _setLoopbackRecordingState; private _setDefaultCameraVideoEncoderConfig; private _setVideoEncoderConfigWithConnection; private _bindStreamConfig; private _configureEncodingSettings; private _setVideoMinDimension; private _enableLoopbackRecording; private _ifSetVideoEncoderConfigByStreamId; private _ifSetVideoEncoderConfigDualStreamByStorage; private _addVideoEncoderConfigStorage; private _getVideoEncoderConfigStorage; private _removeVideoEncoderConfigStorage; private _getVideoEncoderConfigStorageKey; }