import { CallWithChatAdapter } from './CallWithChatAdapter';
import { CallAdapter, CallAdapterState } from '../../CallComposite';
import { VideoBackgroundImage, VideoBackgroundEffect } from '../../CallComposite';
import { CreateVideoStreamViewResult, VideoStreamOptions } from "../../../../../react-components/src";
import { TogetherModeStreamViewResult, TogetherModeStreamOptions } from "../../../../../react-components/src";
import { AudioDeviceInfo, VideoDeviceInfo, Call, PermissionConstraints, StartCallOptions, DeviceAccess } from '@azure/communication-calling';
import { Reaction } from '@azure/communication-calling';
import { AddPhoneNumberOptions } from '@azure/communication-calling';
import { DtmfTone } from '@azure/communication-calling';
import { CommunicationIdentifier, PhoneNumberIdentifier } from '@azure/communication-common';
import { CommunicationUserIdentifier } from '@azure/communication-common';
import { JoinCallOptions, StartCallIdentifier, StartCaptionsAdapterOptions, StopCaptionsAdapterOptions } from '../../CallComposite/adapter/CallAdapter';
import { CallSurvey, CallSurveyResponse } from '@azure/communication-calling';
/**
 * Facade around the CallWithChatAdapter to satisfy the call adapter interface.
 *
 * @private
 */
export declare class CallWithChatBackedCallAdapter implements CallAdapter {
    private callWithChatAdapter;
    private eventStore;
    constructor(callWithChatAdapter: CallWithChatAdapter);
    on: (event: any, listener: any) => void;
    off: (event: any, listener: any) => void;
    onStateChange: (handler: (state: CallAdapterState) => void) => void;
    offStateChange: (handler: (state: CallAdapterState) => void) => void;
    getState: () => CallAdapterState;
    dispose: () => void;
    joinCall: (options?: boolean | JoinCallOptions) => Call | undefined;
    leaveCall: (forEveryone?: boolean) => Promise<void>;
    startCall: (participants: (string | StartCallIdentifier)[], options: StartCallOptions) => Call | undefined;
    setCamera: (sourceId: VideoDeviceInfo, options?: VideoStreamOptions) => Promise<void>;
    setMicrophone: (sourceId: AudioDeviceInfo) => Promise<void>;
    setSpeaker: (sourceId: AudioDeviceInfo) => Promise<void>;
    askDevicePermission: (constraints: PermissionConstraints) => Promise<DeviceAccess>;
    queryCameras: () => Promise<VideoDeviceInfo[]>;
    queryMicrophones: () => Promise<AudioDeviceInfo[]>;
    querySpeakers: () => Promise<AudioDeviceInfo[]>;
    startCamera: (options?: VideoStreamOptions) => Promise<void>;
    stopCamera: () => Promise<void>;
    mute: () => Promise<void>;
    unmute: () => Promise<void>;
    startScreenShare: () => Promise<void>;
    stopScreenShare: () => Promise<void>;
    raiseHand: () => Promise<void>;
    lowerHand: () => Promise<void>;
    onReactionClick: (reaction: Reaction) => Promise<void>;
    removeParticipant: (userId: string | CommunicationIdentifier) => Promise<void>;
    createStreamView: (remoteUserId?: string, options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult>;
    createTogetherModeStreamView: (options?: TogetherModeStreamOptions) => Promise<void | TogetherModeStreamViewResult>;
    startTogetherMode: () => Promise<void>;
    setTogetherModeSceneSize: (width: number, height: number) => void;
    disposeStreamView: (remoteUserId?: string, options?: VideoStreamOptions) => Promise<void>;
    disposeScreenShareStreamView(remoteUserId: string): Promise<void>;
    disposeRemoteVideoStreamView(remoteUserId: string): Promise<void>;
    disposeLocalVideoStreamView(): Promise<void>;
    disposeTogetherModeStreamView: () => Promise<void>;
    holdCall: () => Promise<void>;
    resumeCall: () => Promise<void>;
    addParticipant(participant: PhoneNumberIdentifier, options?: AddPhoneNumberOptions): Promise<void>;
    addParticipant(participant: CommunicationUserIdentifier): Promise<void>;
    sendDtmfTone: (dtmfTone: DtmfTone) => Promise<void>;
    startCaptions(options?: StartCaptionsAdapterOptions): Promise<void>;
    stopCaptions(options?: StopCaptionsAdapterOptions): Promise<void>;
    setCaptionLanguage(language: string): Promise<void>;
    setSpokenLanguage(language: string): Promise<void>;
    sendRealTimeText(text: string, isFinalized: boolean): Promise<void>;
    startVideoBackgroundEffect(videoBackgroundEffect: VideoBackgroundEffect): Promise<void>;
    stopVideoBackgroundEffects(): Promise<void>;
    updateBackgroundPickerImages(backgroundImages: VideoBackgroundImage[]): void;
    updateSelectedVideoBackgroundEffect(selectedVideoBackground: VideoBackgroundEffect): void;
    startNoiseSuppressionEffect(): Promise<void>;
    stopNoiseSuppressionEffect(): Promise<void>;
    submitSurvey(survey: CallSurvey): Promise<CallSurveyResponse | undefined>;
    startSpotlight(userIds?: string[]): Promise<void>;
    stopSpotlight(userIds?: string[]): Promise<void>;
    stopAllSpotlight(): Promise<void>;
    muteParticipant(userId: string): Promise<void>;
    muteAllRemoteParticipants(): Promise<void>;
    returnFromBreakoutRoom(): Promise<void>;
    forbidAudio(userIds: string[]): Promise<void>;
    permitAudio(userIds: string[]): Promise<void>;
    forbidOthersAudio(): Promise<void>;
    permitOthersAudio(): Promise<void>;
    forbidVideo(userIds: string[]): Promise<void>;
    permitVideo(userIds: string[]): Promise<void>;
    forbidOthersVideo(): Promise<void>;
    permitOthersVideo(): Promise<void>;
}
//# sourceMappingURL=CallWithChatBackedCallAdapter.d.ts.map