/**
 * YiRTC SDK 流类
 */
import { EventEmitter } from './utils/eventEmitter';
import { StreamConfig, VideoProfileType, MediaType } from './types';
/**
 * 流类，负责管理音视频流
 */
export declare class Stream extends EventEmitter {
    private logger;
    private config;
    private stream;
    private videoTrack;
    private audioTrack;
    private videoElement;
    private streamId;
    private userId;
    private isPlaying;
    private videoProfile;
    private isLocal;
    private mediaType;
    /**
     * 创建流实例
     * @param config 流配置
     */
    constructor(config: StreamConfig);
    /**
     * 初始化流
     * @returns Promise<void>
     */
    init(): Promise<void>;
    /**
     * 播放流
     * @param elementId 视频元素ID
     * @returns void
     */
    play(elementId: string): void;
    /**
     * 停止播放
     */
    stop(): void;
    /**
     * 销毁流
     */
    destroy(): void;
    /**
     * 静音音频
     */
    muteAudio(): void;
    /**
     * 取消静音音频
     */
    unmuteAudio(): void;
    /**
     * 禁用视频
     */
    muteVideo(): void;
    /**
     * 启用视频
     */
    unmuteVideo(): void;
    /**
     * 设置音频配置
     * @param profile 音频配置
     */
    setAudioProfile(profile: string): void;
    /**
     * 设置视频配置
     * @param profile 视频配置
     */
    setVideoProfile(profile: VideoProfileType): void;
    /**
     * 设置音频音量
     * @param volume 音量值 (0-100)
     */
    setAudioVolume(volume: number): void;
    /**
     * 获取音频电平
     * @returns number 音频电平 (0-100)
     */
    getAudioLevel(): number;
    /**
     * 是否有音频
     * @returns boolean
     */
    hasAudio(): boolean;
    /**
     * 是否有视频
     * @returns boolean
     */
    hasVideo(): boolean;
    /**
     * 是否正在播放
     * @returns boolean
     */
    isPlayingState(): boolean;
    /**
     * 是否可以播放
     * @returns boolean
     */
    canPlay(): boolean;
    /**
     * 获取流ID
     * @returns string
     */
    getId(): string;
    /**
     * 获取用户ID
     * @returns string | number
     */
    getUserId(): string | number;
    /**
     * 设置用户ID
     * @param uid 用户ID
     */
    setUserId(uid: string | number): void;
    /**
     * 设置是否为本地流
     * @param isLocal 是否为本地流
     */
    setIsLocal(isLocal: boolean): void;
    /**
     * 是否为本地流
     * @returns boolean
     */
    isLocalStream(): boolean;
    /**
     * 获取MediaStream对象
     * @returns MediaStream | null
     */
    getMediaStream(): MediaStream | null;
    /**
     * 截取视频快照
     * @returns Promise<string> 图片的base64编码
     */
    takeSnapshot(): Promise<string>;
    /**
     * 获取媒体类型
     * @returns MediaType
     */
    getMediaType(): MediaType;
    /**
     * 设置媒体类型
     * @param mediaType 媒体类型
     */
    setMediaType(mediaType: MediaType): void;
    /**
     * 是否为屏幕共享流
     * @returns boolean
     */
    isScreenStream(): boolean;
    /**
     * 是否为音频流
     * @returns boolean
     */
    isAudioStream(): boolean;
    /**
     * 是否为视频流
     * @returns boolean
     */
    isVideoStream(): boolean;
}
