import { ConnectionId } from "../network/INetwork";
import { IWebRtcNetwork, RtcEvent } from "../network/IWebRtcNetwork";
import { MediaConfig } from "./MediaConfig";
import { IFrameData } from "./RawFrame";
export declare enum MediaConfigurationState {
    Invalid = 0,
    NoConfiguration = 1,
    InProgress = 2,
    Successful = 3,
    Failed = 4
}
export declare class StreamAddedEvent extends RtcEvent {
    private mArgs;
    get Args(): any;
    constructor(id: ConnectionId, args: any);
}
/**Interface adds media functionality to IWebRtcNetwork.
 * It is used to ensure compatibility to all other platforms.
 */
export interface IMediaNetwork extends IWebRtcNetwork {
    Configure(config: MediaConfig): void;
    GetConfigurationState(): MediaConfigurationState;
    GetConfigurationError(): string;
    ResetConfiguration(): void;
    TryGetFrame(id: ConnectionId): IFrameData;
    PeekFrame(id: ConnectionId): IFrameData;
    SetVolume(volume: number, id: ConnectionId): void;
    HasAudioTrack(id: ConnectionId): boolean;
    HasVideoTrack(id: ConnectionId): boolean;
}
