import { PayloadAction } from '@reduxjs/toolkit';
import { RootState } from '../../app/store';
import { ChatMessageModel, ChatModel } from './models';
import { ChatMessageAction } from './actionModels';
export declare const chatSlice: import("@reduxjs/toolkit").Slice<ChatModel, {
    publicChatMessageReceived: (state: import("immer/dist/internal").WritableDraft<ChatModel>, action: PayloadAction<ChatMessageAction>) => void;
    publicChatMessageSent: (state: import("immer/dist/internal").WritableDraft<ChatModel>, action: PayloadAction<ChatMessageAction>) => void;
    privateChatMessageReceived: (state: import("immer/dist/internal").WritableDraft<ChatModel>, action: PayloadAction<ChatMessageAction>) => void;
    privateChatMessageSent: (state: import("immer/dist/internal").WritableDraft<ChatModel>, action: PayloadAction<ChatMessageAction>) => void;
    clearChatMessages: (state: import("immer/dist/internal").WritableDraft<ChatModel>) => void;
    setMessageRecipient: (state: import("immer/dist/internal").WritableDraft<ChatModel>, action: PayloadAction<string>) => void;
    clearNewMessageFrom: (state: import("immer/dist/internal").WritableDraft<ChatModel>, action: PayloadAction<string>) => void;
}, "chat">;
export declare const clearChatMessages: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chat/clearChatMessages">, clearNewMessageFrom: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "chat/clearNewMessageFrom">, publicChatMessageReceived: import("@reduxjs/toolkit").ActionCreatorWithPayload<ChatMessageAction, "chat/publicChatMessageReceived">, publicChatMessageSent: import("@reduxjs/toolkit").ActionCreatorWithPayload<ChatMessageAction, "chat/publicChatMessageSent">, privateChatMessageReceived: import("@reduxjs/toolkit").ActionCreatorWithPayload<ChatMessageAction, "chat/privateChatMessageReceived">, privateChatMessageSent: import("@reduxjs/toolkit").ActionCreatorWithPayload<ChatMessageAction, "chat/privateChatMessageSent">, setMessageRecipient: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "chat/setMessageRecipient">;
export declare const selectPublicChatMessages: (state: RootState) => ChatMessageModel[];
export declare const selectPrivateChatMessages: (state: RootState) => {
    [participantId: string]: ChatMessageModel[];
};
export declare const selectMessageRecipient: (state: RootState) => string;
export declare const selectNewMessagesFrom: (state: RootState) => string[];
declare const _default: import("redux").Reducer<ChatModel, import("redux").AnyAction>;
export default _default;
