import { MediaStates } from '../store/roomSlice';
interface MediaTrackSelection {
    options?: any[];
    selectedDeviceId: string;
}
export declare enum permissionEnum {
    ACCEPTED = 0,
    DENIED = 1,
    FAILED = 2,
    INIT = 3
}
export declare const setUser: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
export declare const setUserToken: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
export declare const setLoggedIn: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
export declare const setUserDisplayName: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
export declare const setUserDisplayImageURL: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
export declare const setVideoProduction: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<MediaStates, string>;
export declare const setAudioProduction: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<MediaStates, string>;
export declare const setScreenSharingProduction: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<MediaStates, string>;
export declare const setAudioMuted: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, string>;
export declare const setScreenSharing: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, string>;
export declare const setVideoOff: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, string>;
export declare const setVideoTrackSelection: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<MediaTrackSelection, string>;
export declare const setAudioTrackSelection: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<MediaTrackSelection, string>;
export declare const setParticipantPermissions: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<ParticipantPermissions, string>;
export declare const requestToJoinStageAccepted: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
export declare const requestToJoinStageRejected: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
export declare const removedFromStage: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
export declare const requestedJoinToStageState: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
export declare const requestToJoinType: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
export declare const startedPresenting: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"websocket/started-presenting">;
export declare const stoppedPresenting: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"websocket/stopped-presenting">;
export declare const initiatePresenting: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"participant/initiate-presenting">;
export declare const requestToJoinPeerStageAccepted: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
export declare const resetParticipant: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"session/reset-pariticipant">;
export declare const setCameraFacing: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string, string>;
export declare const muteAll: import("@reduxjs/toolkit").ActionCreatorWithNonInferrablePayload<string>;
export declare const muteAllVideo: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"websocket/mute-all-video">;
export declare const disableAudio: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"websocket/disable-audio">;
export declare const disableVideo: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"websocket/disable-video">;
export declare const setVisibilitySettings: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<{
    hidden: boolean;
    joinStageSettings: JoinStageSettings;
}, string>;
export declare const updateCanPresent: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, string>;
export declare const updateWebinarPresentingSetting: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, string>;
export declare const updatePreset: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
export declare const switchToGroupCall: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"session/switch-group-call">;
export interface ParticipantPermissions {
    camera: permissionEnum;
    microphone: permissionEnum;
    externalStorage?: permissionEnum;
    bluetooth?: permissionEnum;
    photos?: permissionEnum;
    readExternalStorage?: permissionEnum;
}
export declare enum JoinStageSettings {
    ALLOWED = "allowed",
    ON_REQUEST = "on_request",
    NOT_ALLOWED = "not_allowed"
}
export declare enum PresentingState {
    PRESENTING = 0,
    NOT_PRESENTING = 1,
    INITIATED = 2
}
export declare enum RequestToJoinStageState {
    NONE = 0,
    WAITING = 1,
    ACCEPTED = 2,
    REJECTED = 3,
    INITIATED = 4
}
export declare enum RequestToJoinType {
    present = "REQUEST_TO_PRESENT",
    ask = "REQUEST_TO_ASK"
}
export interface Participant {
    id: string;
    peerId: string;
    device: string;
    email: string;
    displayName: string;
    authToken: string;
    loggedIn: boolean;
    displayImageURL: string;
    audioMuted: boolean;
    videoOff: boolean;
    sharingScreen: boolean;
    videoProduction: MediaStates;
    audioProduction: MediaStates;
    screenSharingProduction: MediaStates;
    shouldProduce: boolean;
    videoTrackSelection?: MediaTrackSelection;
    audioTrackSelection?: MediaTrackSelection;
    isHost: boolean;
    canUnMute: boolean;
    clientSpecificId?: string;
    participantPermissions: ParticipantPermissions;
    cameraFacing: string;
    hidden: boolean;
    webinarHiddenParticipant: boolean;
    joinStageSettings: string;
    requestToJoinStageState: RequestToJoinStageState;
    requestToJoinType?: RequestToJoinType;
    presentingState?: PresentingState;
    canPresent?: boolean;
    metadata: {
        preset_name: string;
        view_type: string;
    };
    organizationId: string;
    preset: any;
    switched: string;
}
declare const participant: import("redux").Reducer<Participant, import("redux").AnyAction>;
export default participant;
