import { PayloadAction, type Slice } from '@reduxjs/toolkit';
import type { WritableDraft } from 'immer';
import { DeleteModal, IConfig, IUser, ModalFile, ModalType, User } from '../types/types';
import { Iso639_1Codes } from '../types/models/language.model';
export interface ChatState {
    user: User;
    config?: IConfig;
    activeModal?: ModalType;
    deleteModal?: DeleteModal;
    selectedUser?: IUser;
    activeFile?: ModalFile;
    client?: any;
    langSource?: Iso639_1Codes;
}
export declare const unpackAndTransform: (input?: User) => User;
declare const reducers: {
    setUser: (state: WritableDraft<ChatState>, action: PayloadAction<User>) => void;
    updateUser(state: WritableDraft<ChatState>, action: PayloadAction<{
        updates: Partial<User>;
    }>): void;
    setConfig: (state: WritableDraft<ChatState>, action: PayloadAction<IConfig | undefined>) => void;
    setActiveModal: (state: WritableDraft<ChatState>, action: PayloadAction<ModalType | undefined>) => void;
    setActiveFile: (state: WritableDraft<ChatState>, action: PayloadAction<ModalFile>) => void;
    setDeleteModal: (state: WritableDraft<ChatState>, action: PayloadAction<DeleteModal | undefined>) => void;
    setStoreClient: (state: WritableDraft<ChatState>, action: PayloadAction<any>) => void;
    setSelectedUser: (state: WritableDraft<ChatState>, action: PayloadAction<IUser | undefined>) => void;
    refreshTokens: (state: WritableDraft<ChatState>, action: PayloadAction<{
        token: string;
        refreshToken: string;
    }>) => void;
    logout: (state: WritableDraft<ChatState>) => void;
    setLangSource: (state: WritableDraft<ChatState>, action: PayloadAction<Iso639_1Codes | undefined>) => void;
};
export declare const chatSlice: Slice<ChatState, typeof reducers, 'chat'>;
export declare const setUser: import("@reduxjs/toolkit").ActionCreatorWithPayload<User, "chat/setUser">, setConfig: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<IConfig | undefined, "chat/setConfig">, refreshTokens: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    token: string;
    refreshToken: string;
}, "chat/refreshTokens">, logout: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chat/logout">, setActiveModal: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string | undefined, "chat/setActiveModal">, setDeleteModal: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<DeleteModal | undefined, "chat/setDeleteModal">, setSelectedUser: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<IUser | undefined, "chat/setSelectedUser">, updateUser: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
    updates: Partial<User>;
}, "chat/updateUser">, setActiveFile: import("@reduxjs/toolkit").ActionCreatorWithPayload<ModalFile, "chat/setActiveFile">, setStoreClient: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "chat/setStoreClient">, setLangSource: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<Iso639_1Codes | undefined, "chat/setLangSource">;
declare const _default: import("redux").Reducer<ChatState>;
export default _default;
//# sourceMappingURL=chatSettingsSlice.d.ts.map