import { EventEmitter } from "@angular/core";
import { IAgoraRTCClient } from "agora-rtc-sdk-ng";
import { AgoraConfig } from "../agora-config";
import { IJoinChannel, IJoinChannelApply, IMediaTrack } from "../core/interfaces";
export declare class JoinChannel implements IJoinChannel<IMediaTrack> {
    client: IAgoraRTCClient;
    config: AgoraConfig;
    channelName: string;
    token: string;
    uid?: string | undefined;
    private localVideoTrack;
    private requestInWait;
    private tracks;
    constructor(client: IAgoraRTCClient, config: AgoraConfig, channelName: string, token: string, uid?: string | undefined);
    Apply(): Promise<IMediaTrack>;
    WithMediaStream(videoMediaStream: MediaStreamTrack, audioMediaStream: MediaStreamTrack): IJoinChannelApply<IMediaTrack>;
    WithCameraAndMicrophone(microphoneId: string, cameraId: string): IJoinChannelApply<IMediaTrack>;
    registerUserJoinedEvent(event: EventEmitter<{
        track: IMediaTrack;
    }>): void;
    private _onLocalUserJoinedEvent;
}
//# sourceMappingURL=join-channel.d.ts.map