/// <reference types="react" />
import { OptionsDevice } from "../../../../../react-components/src";
import { ReactionResources } from "../../../../../react-components/src";
import { VideoGalleryLayout } from "../../../../../react-components/src";
import { AudioDeviceInfo } from '@azure/communication-calling';
import { CommonCallControlOptions } from '../types/CommonCallControlOptions';
import { DtmfDialPadOptions } from '../../CallComposite';
/** @private */
export interface MoreDrawerStrings {
    /**
     * Label for people drawerMenuItem.
     */
    peopleButtonLabel: string;
    /**
     * Label for audio device drawerMenuItem.
     *
     * @remarks This replaces the microphoneMenuTitle speakers can not be enumerated
     *
     */
    audioDeviceMenuTitle?: string;
    /**
     * Label for microphone drawerMenuItem.
     *
     * @remarks Only displayed when speakers can be enumerated otherwise audioDeviceMenuTitle is used
     *
     */
    microphoneMenuTitle: string;
    /**
     * Label for speaker drawerMenuItem.
     *
     * @remarks Only displayed when speakers can be enumerated
     *
     */
    speakerMenuTitle: string;
    /**
     * Label for captions drawerMenuItem
     *
     * @remarks Only displayed when in Teams call
     */
    captionsMenuTitle: string;
    /**
     * Label for spokenLanguage drawerMenuItem
     *
     * @remarks Only displayed when in Teams call, disabled until captions is on
     */
    spokenLanguageMenuTitle: string;
    /**
     * Label for captionLanguage drawerMenuItem
     *
     * @remarks Only displayed when in Teams call, disabled until captions is on
     */
    captionLanguageMenuTitle: string;
    /**
     * Label for gallery options drawerMenuItem
     */
    galleryOptionsMenuTitle: string;
}
/** @private */
export interface MoreDrawerDevicesMenuProps {
    /**
     * Available microphones for selection
     */
    microphones?: OptionsDevice[];
    /**
     * Available speakers for selection
     */
    speakers?: OptionsDevice[];
    /**
     * Microphone that is shown as currently selected
     */
    selectedMicrophone?: OptionsDevice;
    /**
     * Speaker that is shown as currently selected
     */
    selectedSpeaker?: OptionsDevice;
    /**
     * Speaker when a speaker is selected
     */
    onSelectSpeaker: (device: AudioDeviceInfo) => Promise<void>;
    /**
     * Callback when a microphone is selected
     */
    onSelectMicrophone: (device: AudioDeviceInfo) => Promise<void>;
    userSetGalleryLayout?: VideoGalleryLayout;
    /**
     * Callback for when the gallery layout is changed
     */
    onUserSetGalleryLayout?: (layout: VideoGalleryLayout) => void;
    /**
     * Callback to hide and show the dialpad in the more drawer
     */
    onSetDialpadPage?: () => void;
    /**
     * Whether the dialpad is present in the call
     */
    dtmfDialerPresent?: boolean;
    /**
     * options for the controls of the DTMF dialer
     */
    dtmfDialerOptions?: boolean | DtmfDialPadOptions;
}
/** @private */
export interface MoreDrawerProps extends MoreDrawerDevicesMenuProps {
    onLightDismiss: () => void;
    onPeopleButtonClicked: () => void;
    callControls?: boolean | CommonCallControlOptions;
    onClickShowDialpad?: () => void;
    isCaptionsSupported?: boolean;
    strings: MoreDrawerStrings;
    disableButtonsForHoldScreen?: boolean;
    useTeamsCaptions?: boolean;
    reactionResources?: ReactionResources;
    onReactionClick?: (reaction: string) => Promise<void>;
    onClickMeetingPhoneInfo?: () => void;
    onMuteAllRemoteParticipants?: () => void;
    onForbidOthersAudio?: () => void;
    onPermitOthersAudio?: () => void;
    onForbidOthersVideo?: () => void;
    onPermitOthersVideo?: () => void;
}
/** @private */
export declare const MoreDrawer: (props: MoreDrawerProps) => JSX.Element;
//# sourceMappingURL=MoreDrawer.d.ts.map