import { PayloadAction } from '@reduxjs/toolkit';
import { ActiveSession, SessionState } from '@zocks-communications/client-sdk-js';
import { RootState } from '../../app/store';
import { AddRemoteParticipantAction, ConnectionQualityAction, LocalTrackPublishedAction, LocalTrackUnpublishedAction, RemoveRemoteParticipantAction, TrackMuteAction, TrackPublishedAction, TrackSubscribedAction, TrackUnpublishedAction, TrackUnsubscribedAction } from './actionModels';
import { ParticipantModel, ParticipantTracksView, SessionModel, TrackView } from './models';
export declare const sessionSlice: import("@reduxjs/toolkit").Slice<SessionModel, {
    setSessionState: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<SessionState>) => void;
    setRoomId: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<string>) => void;
    setRoomName: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<string>) => void;
    setActiveSession: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<ActiveSession>) => void;
    setConnecting: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<boolean>) => void;
    clearRoomId: (state: import("immer/dist/internal").WritableDraft<SessionModel>) => void;
    clearRoomName: (state: import("immer/dist/internal").WritableDraft<SessionModel>) => void;
    clearActiveSession: (state: import("immer/dist/internal").WritableDraft<SessionModel>) => void;
    setLocalParticipantId: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<string>) => void;
    setLocalParticipantName: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<string | undefined>) => void;
    clearParticipants: (state: import("immer/dist/internal").WritableDraft<SessionModel>) => void;
    participantLocalTrackPublished: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<LocalTrackPublishedAction>) => void;
    participantLocalTrackUnPublished: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<LocalTrackUnpublishedAction>) => void;
    addRemoteParticipant: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<AddRemoteParticipantAction>) => void;
    removeRemoteParticipant: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<RemoveRemoteParticipantAction>) => void;
    participantTrackSubscribed: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<TrackSubscribedAction>) => void;
    participantTrackUnsubscribed: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<TrackUnsubscribedAction>) => void;
    participantTrackPublished: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<TrackPublishedAction>) => void;
    participantTrackUnPublished: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<TrackUnpublishedAction>) => void;
    participantTrackMuted: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<TrackMuteAction>) => void;
    participantTrackUnMuted: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<TrackMuteAction>) => void;
    connectionQualityChanged: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<ConnectionQualityAction>) => void;
    activeSpeakersChanged: (state: import("immer/dist/internal").WritableDraft<SessionModel>, action: PayloadAction<string[]>) => void;
}, "session">;
export declare const setSessionState: import("@reduxjs/toolkit").ActionCreatorWithPayload<SessionState, "session/setSessionState">, setRoomId: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "session/setRoomId">, setRoomName: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "session/setRoomName">, setActiveSession: import("@reduxjs/toolkit").ActionCreatorWithPayload<ActiveSession, "session/setActiveSession">, setConnecting: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "session/setConnecting">, clearRoomId: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"session/clearRoomId">, clearRoomName: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"session/clearRoomName">, clearActiveSession: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"session/clearActiveSession">, setLocalParticipantId: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "session/setLocalParticipantId">, setLocalParticipantName: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string | undefined, "session/setLocalParticipantName">, participantLocalTrackPublished: import("@reduxjs/toolkit").ActionCreatorWithPayload<LocalTrackPublishedAction, "session/participantLocalTrackPublished">, participantLocalTrackUnPublished: import("@reduxjs/toolkit").ActionCreatorWithPayload<LocalTrackUnpublishedAction, "session/participantLocalTrackUnPublished">, participantTrackPublished: import("@reduxjs/toolkit").ActionCreatorWithPayload<TrackPublishedAction, "session/participantTrackPublished">, participantTrackUnPublished: import("@reduxjs/toolkit").ActionCreatorWithPayload<TrackUnpublishedAction, "session/participantTrackUnPublished">, participantTrackSubscribed: import("@reduxjs/toolkit").ActionCreatorWithPayload<TrackSubscribedAction, "session/participantTrackSubscribed">, participantTrackUnsubscribed: import("@reduxjs/toolkit").ActionCreatorWithPayload<TrackUnsubscribedAction, "session/participantTrackUnsubscribed">, addRemoteParticipant: import("@reduxjs/toolkit").ActionCreatorWithPayload<AddRemoteParticipantAction, "session/addRemoteParticipant">, removeRemoteParticipant: import("@reduxjs/toolkit").ActionCreatorWithPayload<RemoveRemoteParticipantAction, "session/removeRemoteParticipant">, clearParticipants: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"session/clearParticipants">, participantTrackMuted: import("@reduxjs/toolkit").ActionCreatorWithPayload<TrackMuteAction, "session/participantTrackMuted">, participantTrackUnMuted: import("@reduxjs/toolkit").ActionCreatorWithPayload<TrackMuteAction, "session/participantTrackUnMuted">, connectionQualityChanged: import("@reduxjs/toolkit").ActionCreatorWithPayload<ConnectionQualityAction, "session/connectionQualityChanged">, activeSpeakersChanged: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "session/activeSpeakersChanged">;
export declare const selectRoomId: (state: RootState) => string | null;
export declare const selectRoomName: (state: RootState) => string | null;
export declare const selectActiveSession: (state: RootState) => ActiveSession | null;
export declare const selectSessionState: (state: RootState) => SessionState;
export declare const selectIsConnecting: (state: RootState) => boolean;
export declare const selectLocalParticipant: (state: RootState) => ParticipantModel;
export declare const selectActiveSpeakers: (state: RootState) => string[];
export declare const selectLastSpeakers: (state: RootState) => string[];
export declare const selectRemoteParticipants: ((state: any) => ParticipantModel[]) & import("reselect").OutputSelectorFields<(args_0: any) => ParticipantModel[] & {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
export declare const selectLocalParticipantIsConnected: ((state: {
    chat: import("..").ChatModel;
    mediaDevice: import("..").MediaDeviceModel;
    session: SessionModel;
    transcript: import("..").SessionTranscriptModel;
    aiFeature: import("..").AIFeaturesModel;
    view: import("../view/models").ViewModel;
    virtualBackground: import("..").VirtualBackgroundModel;
}) => boolean) & import("reselect").OutputSelectorFields<(args_0: SessionState, args_1: ParticipantModel) => boolean & {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
export declare const selectIsScreenSharing: ((state: any) => boolean) & import("reselect").OutputSelectorFields<(args_0: ParticipantModel, args_1: ParticipantModel[]) => boolean & {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
export declare const selectScreenSharingParticipant: ((state: any) => ParticipantModel | null) & import("reselect").OutputSelectorFields<(args_0: ParticipantModel, args_1: any) => ParticipantModel & {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
export declare const selectUnmutedRemoteParticipantAudioTracks: ((state: any) => TrackView[]) & import("reselect").OutputSelectorFields<(args_0: string | null, args_1: SessionState, args_2: any) => TrackView[] & {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
export declare const selectTracksForParticipant: ((state: any, participant: any) => ParticipantTracksView) & import("reselect").OutputSelectorFields<(args_0: string | null, args_1: SessionState, args_2: any) => ParticipantTracksView & {
    clearCache: () => void;
}> & {
    clearCache: () => void;
};
declare const _default: import("redux").Reducer<SessionModel, import("redux").AnyAction>;
export default _default;
