import { VuexModule } from "vuex-module-decorators";
import { Store } from "vuex";
import { TypesCount } from "../types/TypesCount";
import { NotificationEvent } from "../types/NotificationEvent";
export default class NotificationsStore extends VuexModule {
    clientUid: string;
    isLoading: boolean;
    notifications: NotificationEvent[];
    popupNotifications: NotificationEvent[];
    totalNotificationsCount: number;
    currentType: string | null;
    typesCount: TypesCount;
    excludedTypes: string[];
    excludedPopupTypes: string[];
    get types(): string[];
    get allowedTypes(): string[];
    get allNotificationsCount(): number;
    get currentTypeNotificationCount(): number;
    get filteredNotifications(): NotificationEvent[];
    toggleExcludeType(type: string): void;
    toggleExcludePopupType(type: string): void;
    setExcludedTypes(types: string[]): void;
    setExcludedPopupTypes(types: string[]): void;
    setClientUid(value: string): void;
    setTypesCount(typesCount: TypesCount): void;
    setCurrentType(type: string | null): void;
    setNotifications(notifications: NotificationEvent[]): void;
    setTotalNotificationsCount(value: number): void;
    setIsLoading(value: boolean): void;
    addNotification(notification: NotificationEvent): void;
    removePopupNotification(notificationId: number): void;
    deleteNotification(notificationId: number): void;
    clearNotifications(): void;
    loadTypesCount(): Promise<void>;
    loadNotifications(): Promise<void>;
    loadNotificationsOnScroll(): Promise<void>;
    closeNotification(notificationId: number): Promise<import("axios").AxiosResponse<any>>;
    closeAllNotifications(): Promise<void>;
}
export declare function getNotificationsStore(store: Store<any>): NotificationsStore;
